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))
SourceClass methods
to_ffi
SourceInstance methods
clone
Sourcecopy_with(scaffolding _scaffolding = @scaffolding, pointer _pointer = @pointer)
Sourcepointer
scaffolding
to_s(io)
Sourceunsafe_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.