struct Goban::BitStream

Overview

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

Included Modules

Defined in:

goban/bitstream.cr

Constant Summary

PAD0 = 236
PAD1 = 17

Constructors

Instance Method Summary

Constructor Detail

def self.new(size : Int) #

def self.new(bytes : Slice(UInt8)) #

Instance Method Detail

def <=>(other : BitStream) #
Description copied from module Comparable(Goban::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]

def bits : Pointer(UInt8) #

Pointer to the underlying UInt8 representation.


def inspect(io : IO) #
Description copied from struct Struct

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)"

def read_only : Bool #

Whether this bit stream is read-only.


def read_pos : Int32 #

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


def read_pos=(read_pos : Int32) #

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


def size : Int32 #

Size of the array.


def write_pos : Int32 #

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


def write_pos=(write_pos : Int32) #

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