struct

Goban::BitStream

Inherits Comparable / Indexable::Mutable / Indexable / Enumerable / Iterable / Struct / Value / Object

An array data structure that holds bits. Based on the BitArray object of the standard library.

Constants

PAD0 = 236
PAD1 = 17

Constructors

new(size : Int)
Source
new(bytes : Slice(UInt8))
Source

Instance methods

<=>(other : BitStream)

The comparison operator. Returns 0 if the two objects are equal, a negative number if this object is considered less than other, a positive number if this object is considered greater than other, or nil if the two objects are not comparable.

Subclasses define this method to provide class-specific ordering.

The comparison operator is usually used to sort values:

# Sort in a descending way:
[3, 1, 2].sort { |x, y| y <=> x } # => [3, 2, 1]

# Sort in an ascending way:
[3, 1, 2].sort { |x, y| x <=> y } # => [1, 2, 3]
Source
bits

Pointer to the underlying UInt8 representation.

Source
inspect(io : IO)

Appends this struct's name and instance variables names and values to the given IO.

struct Point
  def initialize(@x : Int32, @y : Int32)
  end
end

p1 = Point.new 1, 2
p1.to_s    # "Point(@x=1, @y=2)"
p1.inspect # "Point(@x=1, @y=2)"
Source
read_only

Whether this bit stream is read-only.

Source
read_pos

Current tail index of the reader. This increases as more bits are read.

Source
read_pos=(read_pos : Int32)

Current tail index of the reader. This increases as more bits are read.

Source
size

Size of the array.

Source
write_pos

Current tail index of the writer. This increases as more bits are written.

Source
write_pos=(write_pos : Int32)

Current tail index of the writer. This increases as more bits are written.

Source