Added all integral types

This commit is contained in:
Tristan B. Velloza Kildaire 2023-01-05 11:31:42 +02:00
parent 4a287864ee
commit 2c8141f5b6
1 changed files with 19 additions and 4 deletions

View File

@ -21,18 +21,33 @@ public RecordType fromJSON(RecordType)(JSONValue jsonIn)
// pragma(msg, structValues[cnt]); // pragma(msg, structValues[cnt]);
} }
//TODO: Add all integral types static if(__traits(isSame, mixin(structTypes[cnt]), byte))
static if(__traits(isSame, mixin(structTypes[cnt]), int)) {
mixin("record."~structNames[cnt]) = cast(byte)jsonIn[structNames[cnt]].integer();
}
else static if(__traits(isSame, mixin(structTypes[cnt]), ubyte))
{
mixin("record."~structNames[cnt]) = cast(ubyte)jsonIn[structNames[cnt]].uinteger();
}
else static if(__traits(isSame, mixin(structTypes[cnt]), short))
{
mixin("record."~structNames[cnt]) = cast(short)jsonIn[structNames[cnt]].integer();
}
else static if(__traits(isSame, mixin(structTypes[cnt]), ushort))
{
mixin("record."~structNames[cnt]) = cast(ushort)jsonIn[structNames[cnt]].uinteger();
}
else static if(__traits(isSame, mixin(structTypes[cnt]), int))
{ {
mixin("record."~structNames[cnt]) = cast(int)jsonIn[structNames[cnt]].integer(); mixin("record."~structNames[cnt]) = cast(int)jsonIn[structNames[cnt]].integer();
} }
else static if(__traits(isSame, mixin(structTypes[cnt]), uint)) else static if(__traits(isSame, mixin(structTypes[cnt]), uint))
{ {
mixin("record."~structNames[cnt]) = cast(uint)jsonIn[structNames[cnt]].integer(); mixin("record."~structNames[cnt]) = cast(uint)jsonIn[structNames[cnt]].uinteger();
} }
else static if(__traits(isSame, mixin(structTypes[cnt]), ulong)) else static if(__traits(isSame, mixin(structTypes[cnt]), ulong))
{ {
mixin("record."~structNames[cnt]) = cast(ulong)jsonIn[structNames[cnt]].integer(); mixin("record."~structNames[cnt]) = cast(ulong)jsonIn[structNames[cnt]].uinteger();
} }
else static if(__traits(isSame, mixin(structTypes[cnt]), long)) else static if(__traits(isSame, mixin(structTypes[cnt]), long))
{ {