Sha256: 1d7075d483dce873ec3e4ed844dd6fb656787411c94ff12388aab7efcc8d267b
Contents?: true
Size: 833 Bytes
Versions: 1
Compression:
Stored size: 833 Bytes
Contents
# frozen_string_literal: true module Ssz # @example: # ByteBuffer.from_bit_array([1, 0, 0, 0]).bytes #=> "\x01" class ByteBuffer attr_accessor :bytes def initialize(n = 0) @bytes = [0] * n end def self.from_bit_array(bits) byte_size = bits.size < 8 ? 1 : (bits.size / 8.0).ceil bb = ByteBuffer.new(byte_size) bb.bits = bits bb end def bits=(bits) byte_size = bits.size < 8 ? 1 : (bits.size / 8.0).ceil # fill 0 to fix byte(8-bits) while (byte_size * 8) != bits.size do bits << 0 end bits.each_with_index do |b, i| @bytes[i / 8] |= b << (i % 8) end bits end def serialize @bytes.pack("C*") end def length @bytes.length end def bit_size length * 8 end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ssz-0.1.0 | lib/ssz/byte_buffer.rb |