struct

Candiru::StructInstance

Inherits Candiru::ValueInstance < Candiru::IValueInstanceType < Indexable < Enumerable < Iterable < Struct < Value < Object

Represents a live struct instance, pointed to by pointer and described by scaffolding.

point_struct = StructScaffolding[Int32, Int32]
point = point_struct.new { |s| s << 12; s << 34 }

# point : StructInstance

puts point.sum(&.value.raw) # 46

Constructors

new(scaffolding : StructScaffolding, pointer : Pointer(Void))
Source

Class methods

to_ffi
Source

Instance methods

clone
Source
copy_with(scaffolding _scaffolding = @scaffolding, pointer _pointer = @pointer)
Source
pointer
raw

Returns raw content of this value instance.

Source
scaffolding
size

Returns the number of elements in this container.

Source
to_ffi_argument_pointer

Returns an FFI argument pointer for this value instance.

Source
to_s(io)
Source
unsafe_fetch(index : Int)

Returns the element at the given index, without doing any bounds check.

Indexable makes sure to invoke this method with index in 0...size, so converting negative indices to positive ones is not needed here.

Clients never invoke this method directly. Instead, they access elements with #[](index) and #[]?(index).

This method should only be directly invoked if you are absolutely sure the index is in bounds, to avoid a bounds check for a small boost of performance.

Source