Class: ArrowFormat::VariableSizeBinaryArray
- Defined in:
- lib/arrow-format/array.rb
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Array
#offset, #size, #type, #validity_buffer
Instance Method Summary collapse
- #each_buffer {|slice_bitmap_buffer(:validity, @validity_buffer)| ... } ⇒ Object
-
#initialize(size, validity_buffer, offsets_buffer, values_buffer) ⇒ VariableSizeBinaryArray
constructor
A new instance of VariableSizeBinaryArray.
- #offsets ⇒ Object
- #to_a ⇒ Object
Methods inherited from Array
#empty?, #n_nulls, #null?, #slice, #valid?
Constructor Details
#initialize(size, validity_buffer, offsets_buffer, values_buffer) ⇒ VariableSizeBinaryArray
Returns a new instance of VariableSizeBinaryArray.
394 395 396 397 398 |
# File 'lib/arrow-format/array.rb', line 394 def initialize(size, validity_buffer, offsets_buffer, values_buffer) super(self.class.type, size, validity_buffer) @offsets_buffer = offsets_buffer @values_buffer = values_buffer end |
Instance Method Details
#each_buffer {|slice_bitmap_buffer(:validity, @validity_buffer)| ... } ⇒ Object
400 401 402 403 404 405 406 407 408 409 410 411 412 413 |
# File 'lib/arrow-format/array.rb', line 400 def each_buffer return to_enum(__method__) unless block_given? yield(slice_bitmap_buffer(:validity, @validity_buffer)) yield(slice_offsets_buffer(:offsets, @offsets_buffer, @type.offset_buffer_type)) sliced_values_buffer = slice_buffer(:values, @values_buffer) do first_offset = @offsets_buffer.get_value(@type.offset_buffer_type, offset_size * @offset) @values_buffer.slice(first_offset) end yield(sliced_values_buffer) end |
#offsets ⇒ Object
415 416 417 418 419 420 421 |
# File 'lib/arrow-format/array.rb', line 415 def offsets return [0] if empty? @offsets_buffer. each(@type.offset_buffer_type, offset_size * @offset, @size + 1). collect {|_, offset| offset} end |
#to_a ⇒ Object
423 424 425 426 427 428 429 430 431 |
# File 'lib/arrow-format/array.rb', line 423 def to_a return [] if empty? values = offsets.each_cons(2).collect do |offset, next_offset| length = next_offset - offset @values_buffer.get_string(offset, length, @type.encoding) end apply_validity(values) end |