From 2c8141f5b656fdbbb45846b478ec7c596e48d80b Mon Sep 17 00:00:00 2001 From: "Tristan B. Velloza Kildaire" Date: Thu, 5 Jan 2023 11:31:42 +0200 Subject: [PATCH] Added all integral types --- source/libpb/deserialization.d | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/source/libpb/deserialization.d b/source/libpb/deserialization.d index 54b9d59..7227b23 100644 --- a/source/libpb/deserialization.d +++ b/source/libpb/deserialization.d @@ -21,18 +21,33 @@ public RecordType fromJSON(RecordType)(JSONValue jsonIn) // pragma(msg, structValues[cnt]); } - //TODO: Add all integral types - static if(__traits(isSame, mixin(structTypes[cnt]), int)) + static if(__traits(isSame, mixin(structTypes[cnt]), byte)) + { + 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(); } 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)) { - 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)) {