Sha256: d2e52a6dfb779e53e6b400c45c120b9fecf584551f4f5c5dbe7c1b664d5c94b9

Contents?: true

Size: 723 Bytes

Versions: 1

Compression:

Stored size: 723 Bytes

Contents

require 'bit_struct/field'

module BitStruct

  class NestedField < Field

    def initialize( name, nested_class, description = nil )
      super name, nil, description
      @nested_class = nested_class
      @nested = nested_class.new
    end

    def length
      @nested_class.length
    end

    def read( slicer )
      bytes = slicer.get_bytes
      @nested.set_data bytes
      @nested
    end

    def write( slicer, new_value )
      # TODO: What should be allowed here?
      # TODO: new_value.is_a? String
      # TODO: new_value.is_a? Array
      # TODO: new_value.is_a? StructBase
      raise "NYI"
    end

    def to_s( slicer, delimiter )
      "{ #{read( slicer ).to_s delimiter} }"
    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
BitStructEx-0.0.85 src/bit_struct/nested.rb