Relative_Pointers module

decode

procedure2 overloadsSource

Returns the pointer a Relative_Pointer holds, or null if it is unset.

decode :: (p: *Relative_Pointer) -> result: *p.Pointer_To_Type

Parameters

Returns

result: *p.Pointer_To_Type
Example↗
target: u8 = 5;
holder: struct { pointer: Relative_Pointer(s32, u8); };
encode(*holder.pointer, *target);
assert(decode(*holder.pointer) == *target);
decode :: (p: *Relative_String) -> string

Returns the string a Relative_String holds.

Parameters

Returns

string
Example↗
blob: struct { text: Relative_String(s16); bytes: [3] u8; };
blob.bytes = .[104, 105, 33];
blob.text.count = 3;
write_relative_pointer(s16, *blob.text.data, blob.bytes.data);
assert(decode(*blob.text) == "hi!");

See also