The OpenD Programming Language

IonStruct

Ion struct (object)

struct IonStruct {}

Members

Functions

empty
bool empty()
opApply
int opApply(int delegate(size_t symbolID, scope IonDescribedValue value) @(safe) pure @(nogc) dg)
int opApply(int delegate(size_t symbolID, scope IonDescribedValue value) @(safe) @(nogc) dg)
int opApply(int delegate(size_t symbolID, scope IonDescribedValue value) @(safe) pure dg)
int opApply(int delegate(size_t symbolID, scope IonDescribedValue value) @(safe) dg)
int opApply(int delegate(size_t symbolID, scope IonDescribedValue value) @(system) pure @(nogc) dg)
int opApply(int delegate(size_t symbolID, scope IonDescribedValue value) @(system) @(nogc) dg)
int opApply(int delegate(size_t symbolID, scope IonDescribedValue value) @(system) pure dg)
int opApply(int delegate(size_t symbolID, scope IonDescribedValue value) @(system) dg)
opApply
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(safe) pure nothrow @(nogc) dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(safe) nothrow @(nogc) dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(safe) pure @(nogc) dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(safe) pure nothrow dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(safe) @(nogc) dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(safe) pure dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(safe) nothrow dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(safe) dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(system) pure nothrow @(nogc) dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(system) nothrow @(nogc) dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(system) pure @(nogc) dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(system) pure nothrow dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(system) @(nogc) dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(system) pure dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(system) nothrow dg)
int opApply(int delegate(IonErrorCode error, size_t symbolID, scope IonDescribedValue value) @(system) dg)
opApply
int opApply(Dg dg)

For iteration with IonDescribedValue pairs.

opApply
int opApply(Dg dg)

For iteration with size_t (symbol ID), IonErrorCode, and IonDescribedValue triplets.

serialize
void serialize(S serializer)
sorted
bool sorted()
walkLength
size_t walkLength(IonErrorCode firstError)
walkLength
size_t walkLength()
withSymbols
IonStructWithSymbols withSymbols(const(char[])[] symbolTable)

Variables

data
const(ubyte)[] data;
descriptor
IonDescriptor descriptor;

Examples

// null.struct
assert(IonValue([0xDF]).describe.get!IonNull == IonNull(IonTypeCode.struct_));

// empty struct
auto ionStruct = IonValue([0xD0]).describe.get!IonStruct;
size_t i;
foreach (symbolID, elem; ionStruct)
    i++;
assert(i == 0);

// added two 2-bytes NOP padings 0x8F 0x00
ionStruct = IonValue([0xDE, 0x91, 0x8F, 0x00, 0x8A, 0x21, 0x0C, 0x8B, 0x48, 0x43, 0x0C, 0x6B, 0xF5, 0x26, 0x34, 0x00, 0x00, 0x8F, 0x00])
    .describe
    .get!IonStruct;

foreach (symbolID, elem; ionStruct)
{
    if (i == 0)
    {
        assert(symbolID == 10);
        assert(elem.get!IonUInt.get!int == 12);
    }
    if (i == 1)
    {
        assert(symbolID == 11);
        assert(elem.get!IonFloat.get!double == 100e13);
    }
    i++;
}
assert(i == 2);

Meta