Report a bug
If you spot a problem with this page, click here to create a GitHub issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.
mir.ion.tape
- size_t
ionPutVarUInt
(T)(scope ubyte*ptr
, const Tnum
)
if (isUnsigned!T); - Examples:
ubyte[19] data = void; alias AliasSeq(T...) = T; foreach(T; AliasSeq!(ubyte, ushort, uint, ulong)) { data[] = 0; assert(ionPutVarUInt!T(data.ptr, 0) == 1); assert(data[0] == 0x80); data[] = 0; assert(ionPutVarUInt!T(data.ptr, 1) == 1); assert(data[0] == 0x81); data[] = 0; assert(ionPutVarUInt!T(data.ptr, 0x7F) == 1); assert(data[0] == 0xFF); data[] = 0; assert(ionPutVarUInt!T(data.ptr, 0xFF) == 2); assert(data[0] == 0x01); assert(data[1] == 0xFF); } foreach(T; AliasSeq!(ushort, uint, ulong)) { data[] = 0; assert(ionPutVarUInt!T(data.ptr, 0x3FFF) == 2); assert(data[0] == 0x7F); assert(data[1] == 0xFF); data[] = 0; assert(ionPutVarUInt!T(data.ptr, 0x7FFF) == 3); assert(data[0] == 0x01); assert(data[1] == 0x7F); assert(data[2] == 0xFF); data[] = 0; assert(ionPutVarUInt!T(data.ptr, 0xFFEE) == 3); assert(data[0] == 0x03); assert(data[1] == 0x7F); assert(data[2] == 0xEE); } data[] = 0; assert(ionPutVarUInt(data.ptr, uint.max) == 5); assert(data[0] == 0x0F); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0xFF); data[] = 0; assert(ionPutVarUInt!ulong(data.ptr, ulong.max >> 1) == 9); assert(data[0] == 0x7F); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0x7F); assert(data[5] == 0x7F); assert(data[6] == 0x7F); assert(data[7] == 0x7F); assert(data[8] == 0xFF); data[] = 0; assert(ionPutVarUInt(data.ptr, ulong.max) == 10); assert(data[0] == 0x01); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0x7F); assert(data[5] == 0x7F); assert(data[6] == 0x7F); assert(data[7] == 0x7F); assert(data[8] == 0x7F); assert(data[9] == 0xFF);
- size_t
ionPutVarInt
(T)(scope ubyte*ptr
, const Tnum
)
if (isSigned!T); - size_t
ionPutVarInt
(T)(scope ubyte*ptr
, const Tnum
, boolsign
)
if (isUnsigned!T); - Examples:
ubyte[19] data = void; alias AliasSeq(T...) = T; foreach(T; AliasSeq!(ubyte, ushort, uint, ulong)) { data[] = 0; assert(ionPutVarInt!T(data.ptr, 0, false) == 1); assert(data[0] == 0x80); data[] = 0; assert(ionPutVarInt!T(data.ptr, 1, false) == 1); assert(data[0] == 0x81); data[] = 0; assert(ionPutVarInt!T(data.ptr, 0x3F, false) == 1); assert(data[0] == 0xBF); data[] = 0; assert(ionPutVarInt!T(data.ptr, 0x3F, true) == 1); assert(data[0] == 0xFF); data[] = 0; assert(ionPutVarInt!T(data.ptr, 0x7F, false) == 2); assert(data[0] == 0x00); assert(data[1] == 0xFF); data[] = 0; assert(ionPutVarInt!T(data.ptr, 128, true) == 2); assert(data[0] == 0x41); assert(data[1] == 0x80); data[] = 0; assert(ionPutVarInt!T(data.ptr, 127, true) == 2); assert(data[0] == 0x40); assert(data[1] == 0xFF); data[] = 0; assert(ionPutVarInt!T(data.ptr, 3, true) == 1); assert(data[0] == 0xC3); data[] = 0; assert(ionPutVarInt!T(data.ptr, 127, true) == 2); assert(data[0] == 0x40); assert(data[1] == 0xFF); data[] = 0; assert(ionPutVarInt!T(data.ptr, 63, true) == 1); assert(data[0] == 0xFF); } data[] = 0; assert(ionPutVarInt!uint(data.ptr, int.max, false) == 5); assert(data[0] == 0x07); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0xFF); data[] = 0; assert(ionPutVarInt!uint(data.ptr, int.max, true) == 5); assert(data[0] == 0x47); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0xFF); data[] = 0; assert(ionPutVarInt!uint(data.ptr, int.max + 1, true) == 5); assert(data[0] == 0x48); assert(data[1] == 0x00); assert(data[2] == 0x00); assert(data[3] == 0x00); assert(data[4] == 0x80); data[] = 0; assert(ionPutVarInt!ulong(data.ptr, long.max >> 1, false) == 9); assert(data[0] == 0x3F); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0x7F); assert(data[5] == 0x7F); assert(data[6] == 0x7F); assert(data[7] == 0x7F); assert(data[8] == 0xFF); data[] = 0; assert(ionPutVarInt!ulong(data.ptr, long.max, false) == 10); assert(data[0] == 0x00); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0x7F); assert(data[5] == 0x7F); assert(data[6] == 0x7F); assert(data[7] == 0x7F); assert(data[8] == 0x7F); assert(data[9] == 0xFF); data[] = 0; assert(ionPutVarInt!ulong(data.ptr, long.max, true) == 10); assert(data[0] == 0x40); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0x7F); assert(data[5] == 0x7F); assert(data[6] == 0x7F); assert(data[7] == 0x7F); assert(data[8] == 0x7F); assert(data[9] == 0xFF); data[] = 0; assert(ionPutVarInt!ulong(data.ptr, -long.min, true) == 10); assert(data[0] == 0x41); assert(data[1] == 0x00); assert(data[2] == 0x00); assert(data[3] == 0x00); assert(data[4] == 0x00); assert(data[5] == 0x00); assert(data[6] == 0x00); assert(data[7] == 0x00); assert(data[8] == 0x00); assert(data[9] == 0x80); data[] = 0; assert(ionPutVarInt(data.ptr, ulong.max, true) == 10); assert(data[0] == 0x41); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0x7F); assert(data[5] == 0x7F); assert(data[6] == 0x7F); assert(data[7] == 0x7F); assert(data[8] == 0x7F); assert(data[9] == 0xFF); data[] = 0; assert(ionPutVarInt(data.ptr, ulong.max, false) == 10); assert(data[0] == 0x01); assert(data[1] == 0x7F); assert(data[2] == 0x7F); assert(data[3] == 0x7F); assert(data[4] == 0x7F); assert(data[5] == 0x7F); assert(data[6] == 0x7F); assert(data[7] == 0x7F); assert(data[8] == 0x7F); assert(data[9] == 0xFF);
- size_t
ionPutUIntField
(W, WordEndian endian)(scope ubyte*ptr
, BigUIntView!(const(W), endian)value
)
if (isUnsigned!W && (W.sizeof == 1 || endian == TargetEndian)); - size_t
ionPutUIntField
(T)(scope ubyte*ptr
, const Tnum
)
if (isUnsigned!T && (T.sizeof >= 4)); - size_t
ionPutUIntField
(T)(scope ubyte*ptr
, const Tnum
)
if (is(T == ubyte)); - size_t
ionPutUIntField
(T)(scope ubyte*ptr
, const Tnum
)
if (is(T == ushort)); - Examples:
ubyte[8] data; alias AliasSeq(T...) = T; foreach(T; AliasSeq!(ubyte, ushort, uint, ulong)) { data[] = 0; assert(ionPutUIntField!T(data.ptr, 0) == 0); data[] = 0; assert(ionPutUIntField!T(data.ptr, 1) == 1); assert(data[0] == 0x01); data[] = 0; assert(ionPutUIntField!T(data.ptr, 0x3F) == 1); assert(data[0] == 0x3F); data[] = 0; assert(ionPutUIntField!T(data.ptr, 0xFF) == 1); assert(data[0] == 0xFF); data[] = 0; assert(ionPutUIntField!T(data.ptr, 0x80) == 1); assert(data[0] == 0x80); } data[] = 0; assert(ionPutUIntField!uint(data.ptr, int.max) == 4); assert(data[0] == 0x7F); assert(data[1] == 0xFF); assert(data[2] == 0xFF); assert(data[3] == 0xFF); data[] = 0; assert(ionPutUIntField!uint(data.ptr, int.max + 1) == 4); assert(data[0] == 0x80); assert(data[1] == 0x00); assert(data[2] == 0x00); assert(data[3] == 0x00); data[] = 0; assert(ionPutUIntField!ulong(data.ptr, long.max >> 1) == 8); assert(data[0] == 0x3F); assert(data[1] == 0xFF); assert(data[2] == 0xFF); assert(data[3] == 0xFF); assert(data[4] == 0xFF); assert(data[5] == 0xFF); assert(data[6] == 0xFF); assert(data[7] == 0xFF); data[] = 0; assert(ionPutUIntField!ulong(data.ptr, long.max) == 8); assert(data[0] == 0x7F); assert(data[1] == 0xFF); assert(data[2] == 0xFF); assert(data[3] == 0xFF); assert(data[4] == 0xFF); assert(data[5] == 0xFF); assert(data[6] == 0xFF); assert(data[7] == 0xFF); data[] = 0; assert(ionPutUIntField!ulong(data.ptr, long.max + 1) == 8); assert(data[0] == 0x80); assert(data[1] == 0x00); assert(data[2] == 0x00); assert(data[3] == 0x00); assert(data[4] == 0x00); assert(data[5] == 0x00); assert(data[6] == 0x00); assert(data[7] == 0x00); data[] = 0; assert(ionPutUIntField(data.ptr, ulong.max) == 8); assert(data[0] == 0xFF); assert(data[1] == 0xFF); assert(data[2] == 0xFF); assert(data[3] == 0xFF); assert(data[4] == 0xFF); assert(data[5] == 0xFF); assert(data[6] == 0xFF); assert(data[7] == 0xFF);
- size_t
ionPutIntField
(W, WordEndian endian)(scope ubyte*ptr
, BigIntView!(const(W), endian)value
)
if (isUnsigned!W && (W.sizeof == 1 || endian == TargetEndian)); - size_t
ionPutIntField
(T)(scope ubyte*ptr
, const Tnum
)
if (isSigned!T && isIntegral!T); - size_t
ionPutIntField
(T)(scope ubyte*ptr
, const Tnum
, boolsign
)
if (isUnsigned!T); - Examples:
ubyte[9] data; alias AliasSeq(T...) = T; foreach(T; AliasSeq!(ubyte, ushort, uint, ulong)) { data[] = 0; assert(ionPutIntField!T(data.ptr, 0, false) == 0); data[] = 0; assert(ionPutIntField!T(data.ptr, 0, true) == 1); assert(data[0] == 0x80); data[] = 0; assert(ionPutIntField!T(data.ptr, 1, false) == 1); assert(data[0] == 0x01); data[] = 0; assert(ionPutIntField!T(data.ptr, 1, true) == 1); assert(data[0] == 0x81); data[] = 0; assert(ionPutIntField!T(data.ptr, 0x3F, true) == 1); assert(data[0] == 0xBF); data[] = 0; assert(ionPutIntField!T(data.ptr, 0xFF, false) == 2); assert(data[0] == 0x00); assert(data[1] == 0xFF); data[] = 0; assert(ionPutIntField!T(data.ptr, 0xFF, true) == 2); assert(data[0] == 0x80); assert(data[1] == 0xFF); data[] = 0; assert(ionPutIntField!T(data.ptr, 0x80, true) == 2); assert(data[0] == 0x80); assert(data[1] == 0x80); } data[] = 0; assert(ionPutIntField(data.ptr, int.max) == 4); assert(data[0] == 0x7F); assert(data[1] == 0xFF); assert(data[2] == 0xFF); assert(data[3] == 0xFF); data[] = 0; assert(ionPutIntField(data.ptr, int.min) == 5); assert(data[0] == 0x80); assert(data[1] == 0x80); assert(data[2] == 0x00); assert(data[3] == 0x00); assert(data[4] == 0x00); data[] = 0; assert(ionPutIntField(data.ptr, long.max >> 1) == 8); assert(data[0] == 0x3F); assert(data[1] == 0xFF); assert(data[2] == 0xFF); assert(data[3] == 0xFF); assert(data[4] == 0xFF); assert(data[5] == 0xFF); assert(data[6] == 0xFF); assert(data[7] == 0xFF); data[] = 0; assert(ionPutIntField(data.ptr, long.max) == 8); assert(data[0] == 0x7F); assert(data[1] == 0xFF); assert(data[2] == 0xFF); assert(data[3] == 0xFF); assert(data[4] == 0xFF); assert(data[5] == 0xFF); assert(data[6] == 0xFF); assert(data[7] == 0xFF); data[] = 0; assert(ionPutIntField!ulong(data.ptr, long.max + 1, false) == 9); assert(data[0] == 0x00); assert(data[1] == 0x80); assert(data[2] == 0x00); assert(data[3] == 0x00); assert(data[4] == 0x00); assert(data[5] == 0x00); assert(data[6] == 0x00); assert(data[7] == 0x00); assert(data[8] == 0x00); data[] = 0; assert(ionPutIntField(data.ptr, ulong.max, true) == 9); assert(data[0] == 0x80); assert(data[1] == 0xFF); assert(data[2] == 0xFF); assert(data[3] == 0xFF); assert(data[4] == 0xFF); assert(data[5] == 0xFF); assert(data[6] == 0xFF); assert(data[7] == 0xFF); assert(data[8] == 0xFF);
- pure nothrow @nogc size_t
ionPut
(scope ubyte*ptr
, typeof(null), IonTypeCodetypeCode
= IonTypeCode.null_); - Examples:
ubyte[1] data; assert(ionPut(data.ptr, null) == 1); import mir.conv; assert(data[0] == 0x0F, data[0].to!string);
- size_t
ionPut
(T : bool)(scope ubyte*ptr
, const Tvalue
); - Examples:
ubyte[1] data; assert(ionPut(data.ptr, true) == 1); assert(data[0] == 0x11); assert(ionPut(data.ptr, false) == 1); assert(data[0] == 0x10);
- size_t
ionPut
(T)(scope ubyte*ptr
, const Tvalue
, boolsign
= false)
if (isUnsigned!T); - Examples:
ubyte[19] data = void; assert(ionPut(data.ptr, 0u) == 1); assert(data[0] == 0x20); assert(ionPut(data.ptr, 0u, true) == 1); assert(data[0] == 0x30); assert(ionPut(data.ptr, 0xFFu) == 2); assert(data[0] == 0x21); assert(data[1] == 0xFF); assert(ionPut(data.ptr, 0xFFu, true) == 2); assert(data[0] == 0x31); assert(data[1] == 0xFF); assert(ionPut(data.ptr, ulong.max, true) == 9); assert(data[0] == 0x38); assert(data[1] == 0xFF); assert(data[2] == 0xFF); assert(data[3] == 0xFF); assert(data[4] == 0xFF); assert(data[5] == 0xFF); assert(data[6] == 0xFF); assert(data[7] == 0xFF); assert(data[8] == 0xFF);
- size_t
ionPut
(T)(scope ubyte*ptr
, const Tvalue
)
if (isSigned!T && isIntegral!T); - Examples:
ubyte[19] data = void; assert(ionPut(data.ptr, -16) == 2); assert(data[0] == 0x31); assert(data[1] == 0x10); assert(ionPut(data.ptr, 258) == 3); assert(data[0] == 0x22); assert(data[1] == 0x01); assert(data[2] == 0x02);
- size_t
ionPut
(T)(scope ubyte*ptr
, const Tvalue
)
if (is(T == float)); - Examples:
ubyte[5] data; assert(ionPut(data.ptr, -16f) == 5); assert(data[0] == 0x44); assert(data[1] == 0xC1); assert(data[2] == 0x80); assert(data[3] == 0x00); assert(data[4] == 0x00); assert(ionPut(data.ptr, 0f) == 1); assert(data[0] == 0x40); assert(ionPut(data.ptr, -0f) == 5); assert(data[0] == 0x44); assert(data[1] == 0x80); assert(data[2] == 0x00); assert(data[3] == 0x00); assert(data[4] == 0x00);
- size_t
ionPut
(T)(scope ubyte*ptr
, const Tvalue
)
if (is(T == double)); - Examples:
ubyte[9] data; assert(ionPut(data.ptr, -16.0) == 9); assert(data[0] == 0x48); assert(data[1] == 0xC0); assert(data[2] == 0x30); assert(data[3] == 0x00); assert(data[4] == 0x00); assert(data[5] == 0x00); assert(data[6] == 0x00); assert(data[7] == 0x00); assert(data[8] == 0x00); assert(ionPut(data.ptr, 0.0) == 1); assert(data[0] == 0x40); assert(ionPut(data.ptr, -0.0) == 9); assert(data[0] == 0x48); assert(data[1] == 0x80); assert(data[2] == 0x00); assert(data[3] == 0x00); assert(data[4] == 0x00); assert(data[5] == 0x00); assert(data[6] == 0x00); assert(data[7] == 0x00); assert(data[8] == 0x00);
- size_t
ionPut
(T)(scope ubyte*ptr
, const Tvalue
)
if (is(T == real)); - Examples:
ubyte[9] data; assert(ionPut(data.ptr, -16.0L) == 9); assert(data[0] == 0x48); assert(data[1] == 0xC0); assert(data[2] == 0x30); assert(data[3] == 0x00); assert(data[4] == 0x00); assert(data[5] == 0x00); assert(data[6] == 0x00); assert(data[7] == 0x00); assert(data[8] == 0x00); assert(ionPut(data.ptr, 0.0L) == 1); assert(data[0] == 0x40); assert(ionPut(data.ptr, -0.0L) == 9); assert(data[0] == 0x48); assert(data[1] == 0x80); assert(data[2] == 0x00); assert(data[3] == 0x00); assert(data[4] == 0x00); assert(data[5] == 0x00); assert(data[6] == 0x00); assert(data[7] == 0x00); assert(data[8] == 0x00);
- size_t
ionPut
(W, WordEndian endian)(scope ubyte*ptr
, BigUIntView!(const(W), endian)value
)
if (isUnsigned!W && (W.sizeof == 1 || endian == TargetEndian)); - size_t
ionPut
(W, WordEndian endian)(scope ubyte*ptr
, BigIntView!(const(W), endian)value
)
if (isUnsigned!W && (W.sizeof == 1 || endian == TargetEndian)); - size_t
ionPut
(W, WordEndian endian)(scope ubyte*ptr
, DecimalView!(const(W), endian)value
)
if (isUnsigned!W && (W.sizeof == 1 || endian == TargetEndian)); - size_t
ionPut
(T)(scope ubyte*ptr
, const Tvalue
)
if (is(T == Timestamp)); - Examples:
import mir.timestamp; ubyte[20] data; ubyte[] result = [0x68, 0x80, 0x0F, 0xD0, 0x87, 0x88, 0x82, 0x83, 0x84]; auto ts = Timestamp(2000, 7, 8, 2, 3, 4); assert(data[0 .. ionPut(data.ptr, ts)] == result); result = [0x69, 0x80, 0x0F, 0xD0, 0x87, 0x88, 0x82, 0x83, 0x84, 0xC2]; ts = Timestamp(2000, 7, 8, 2, 3, 4, -2, 0); assert(data[0 .. ionPut(data.ptr, ts)] == result); result = [0x6A, 0x80, 0x0F, 0xD0, 0x87, 0x88, 0x82, 0x83, 0x84, 0xC3, 0x10]; ts = Timestamp(2000, 7, 8, 2, 3, 4, -3, 16); assert(data[0 .. ionPut(data.ptr, ts)] == result);
- size_t
ionPut
(T)(scope ubyte*ptr
, const Tvalue
)
if (is(T == Date)); - Examples:
import mir.date; ubyte[13] data; ubyte[] result = [0x65, 0x80, 0x0F, 0xD0, 0x87, 0x88]; auto ts = Date(2000, 7, 8); assert(data[0 .. ionPut(data.ptr, ts)] == result);
- size_t
ionPutSymbolId
(T)(scope ubyte*ptr
, const Tvalue
)
if (isUnsigned!T); - Examples:
ubyte[8] data; ubyte[] result = [0x72, 0x01, 0xFF]; auto id = 0x1FFu; assert(data[0 .. ionPutSymbolId(data.ptr, id)] == result);
- size_t
ionPutSymbolId
(T, WordEndian endian)(scope ubyte*ptr
, BigUIntView!(T, endian)value
); - Examples:
import mir.bignum.low_level_view: BigUIntView, WordEndian; ubyte[8] data; ubyte[] result = [0x72, 0x01, 0xFF]; auto id = BigUIntView!(ubyte, WordEndian.big).fromHexString("1FF"); assert(data[0 .. ionPutSymbolId(data.ptr, id)] == result);
- size_t
ionPut
()(scope ubyte*ptr
, scope const(char)[]value
); - Examples:
ubyte[20] data; ubyte[] result = [0x85, 'v', 'a', 'l', 'u', 'e']; auto str = "value"; assert(data[0 .. ionPut(data.ptr, str)] == result); result = [ubyte(0x8E), ubyte(0x90)] ~ cast(ubyte[])"hexadecimal23456"; str = "hexadecimal23456"; assert(data[0 .. ionPut(data.ptr, str)] == result);
- size_t
ionPut
(T)(scope ubyte*ptr
, const Tvalue
)
if (is(T == Clob)); - Examples:
import mir.lob; ubyte[20] data; ubyte[] result = [0x95, 'v', 'a', 'l', 'u', 'e']; auto str = Clob("value"); assert(data[0 .. ionPut(data.ptr, str)] == result); result = [ubyte(0x9E), ubyte(0x90)] ~ cast(ubyte[])"hexadecimal23456"; str = Clob("hexadecimal23456"); assert(data[0 .. ionPut(data.ptr, str)] == result);
- size_t
ionPut
(T)(scope ubyte*ptr
, const Tvalue
)
if (is(T == Blob)); - Examples:
import mir.lob; ubyte[20] data; ubyte[] result = [0xA5, 'v', 'a', 'l', 'u', 'e']; auto payload = Blob(cast(ubyte[])"value"); assert(data[0 .. ionPut(data.ptr, payload)] == result); result = [ubyte(0xAE), ubyte(0x90)] ~ cast(ubyte[])"hexadecimal23456"; payload = Blob(cast(ubyte[])"hexadecimal23456"); assert(data[0 .. ionPut(data.ptr, payload)] == result);
- size_t
ionPutStartLength
()(); - size_t
ionPutEmpty
()(ubyte*startPtr
, IonTypeCodetc
); - size_t
ionPutEnd
()(ubyte*startPtr
, IonTypeCodetc
, size_ttotalElementLength
); - Examples:
import mir.ion.type_code; ubyte[1024] data; auto pos = ionPutStartLength(); ubyte[] result = [0xB0]; assert(data[0 .. ionPutEnd(data.ptr, IonTypeCode.list, 0)] == result); result = [ubyte(0xB6), ubyte(0x85)] ~ cast(ubyte[])"hello"; auto len = ionPut(data.ptr + pos, "hello"); assert(data[0 .. ionPutEnd(data.ptr, IonTypeCode.list, len)] == result); result = [0xCE, 0x90, 0x8E, 0x8E]; result ~= cast(ubyte[])"hello world!!!"; len = ionPut(data.ptr + pos, "hello world!!!"); assert(data[0 .. ionPutEnd(data.ptr, IonTypeCode.sexp, len)] == result); auto bm = ` Generating test runner configuration 'mir-ion-test-library' for 'library' (library). Performing "unittest" build using /Users/9il/dlang/ldc2/bin/ldc2 for x86_64. mir-core 1.1.7: target for configuration "library" is up to date. mir-algorithm 3.9.2: target for configuration "default" is up to date. mir-cpuid 1.2.6: target for configuration "library" is up to date. mir-ion 0.5.7+commit.70.g7dcac11: building configuration "mir-ion-test-library"... Linking... To force a rebuild of up-to-date targets, run again with --force. Running ./mir-ion-test-library`; result = [0xBE, 0x04, 0xB0, 0x8E, 0x04, 0xAD]; result ~= cast(ubyte[])bm; len = ionPut(data.ptr + pos, bm); assert(data[0 .. ionPutEnd(data.ptr, IonTypeCode.list, len)] == result);
- size_t
ionPutStartLength
()(ubyte*startPtr
, IonTypeCodetc
); - size_t
ionPutEnd
()(ubyte*startPtr
, size_ttotalElementLength
); - size_t
ionPutAnnotationsListStartLength
()(); - size_t
ionPutAnnotationsListEnd
()(ubyte*startPtr
, size_ttotalElementLength
); - Examples:
import mir.ion.type_code; ubyte[1024] data; auto pos = ionPutStartLength(data.ptr, IonTypeCode.list); ubyte[] result = [0xB0]; assert(data[0 .. ionPutEnd(data.ptr, 0)] == result); result = [ubyte(0xB6), ubyte(0x85)] ~ cast(ubyte[])"hello"; pos = ionPutStartLength(data.ptr, IonTypeCode.list); auto len = ionPut(data.ptr + pos, "hello"); assert(data[0 .. ionPutEnd(data.ptr, len)] == result); result = [0xCE, 0x90, 0x8E, 0x8E]; result ~= cast(ubyte[])"hello world!!!"; pos = ionPutStartLength(data.ptr, IonTypeCode.sexp); len = ionPut(data.ptr + pos, "hello world!!!"); assert(data[0 .. ionPutEnd(data.ptr, len)] == result); auto bm = ` Generating test runner configuration 'mir-ion-test-library' for 'library' (library). Performing "unittest" build using /Users/9il/dlang/ldc2/bin/ldc2 for x86_64. mir-core 1.1.7: target for configuration "library" is up to date. mir-algorithm 3.9.2: target for configuration "default" is up to date. mir-cpuid 1.2.6: target for configuration "library" is up to date. mir-ion 0.5.7+commit.70.g7dcac11: building configuration "mir-ion-test-library"... Linking... To force a rebuild of up-to-date targets, run again with --force. Running ./mir-ion-test-library`; result = [0xBE, 0x04, 0xB0, 0x8E, 0x04, 0xAD]; result ~= cast(ubyte[])bm; pos = ionPutStartLength(data.ptr, IonTypeCode.list); len = ionPut(data.ptr + pos, bm); len = ionPutEnd(data.ptr, len); assert(data[0 .. len] == result);
Copyright © 2016-2022 by Ilya Yaroshenko | Page generated by
Ddoc on Thu Mar 10 07:43:26 2022