From aea8ac5bb6b60f675ff8f08c84e5293106725d31 Mon Sep 17 00:00:00 2001 From: "Tristan B. Velloza Kildaire" Date: Mon, 2 Oct 2023 15:05:33 +0200 Subject: [PATCH] Encoding - Switched to niknaks for `decode()` --- source/tristanable/encoding.d | 29 ++++------------------------- 1 file changed, 4 insertions(+), 25 deletions(-) diff --git a/source/tristanable/encoding.d b/source/tristanable/encoding.d index 8af5329..7ce3a3f 100644 --- a/source/tristanable/encoding.d +++ b/source/tristanable/encoding.d @@ -4,6 +4,7 @@ module tristanable.encoding; import std.conv : to; +import niknaks.bits : bytesToIntegral, Order, order; /** * Represents a tagged message that has been decoded @@ -60,31 +61,9 @@ public final class TaggedMessage /* The decoded tag */ ulong decodedTag; - /* If on little endian then dump direct */ - version(LittleEndian) - { - decodedTag = *cast(ulong*)encodedMessage.ptr; - } - /* If on big endian then reverse received 8 bytes */ - else version(BigEndian) - { - /* Base of our tag */ - byte* tagHighPtr = cast(byte*)decodedTag.ptr; - - *(tagHighPtr+0) = encodedMessage[7]; - *(tagHighPtr+1) = encodedMessage[6]; - *(tagHighPtr+2) = encodedMessage[5]; - *(tagHighPtr+3) = encodedMessage[4]; - *(tagHighPtr+4) = encodedMessage[3]; - *(tagHighPtr+5) = encodedMessage[2]; - *(tagHighPtr+6) = encodedMessage[1]; - *(tagHighPtr+7) = encodedMessage[0]; - } - /* Blessed is the fruit of thy womb Jesus, hail Mary, mother of God, pray for our sinners - now and at the hour of our death - Amen */ - else - { - pragma(msg, "Not too sure about tha 'ey 😳️"); - } + /* Take ulong-many bytes and only flip them to LE if not on LE host */ + decodedTag = order(bytesToIntegral!(ushort)(cast(ubyte[])encodedMessage), Order.LE); + /* Set the tag */ decodedMessage.setTag(decodedTag);