int i = 12345; ubyte[4] swappedI = nativeToLittleEndian(i); assert(i == littleEndianToNative!int(swappedI)); float f = 123.45f; ubyte[4] swappedF = nativeToLittleEndian(f); assert(f == littleEndianToNative!float(swappedF)); const float cf = 123.45f; ubyte[4] swappedCF = nativeToLittleEndian(cf); assert(cf == littleEndianToNative!float(swappedCF)); double d = 123.45; ubyte[8] swappedD = nativeToLittleEndian(d); assert(d == littleEndianToNative!double(swappedD)); const double cd = 123.45; ubyte[8] swappedCD = nativeToLittleEndian(cd); assert(cd == littleEndianToNative!double(swappedCD));
Converts the given value from the native endianness to little endian and returns it as a ubyte[n] where n is the size of the given type.
Returning a ubyte[n] helps prevent accidentally using a swapped value as a regular one (and in the case of floating point values, it's necessary, because the FPU will mess up any swapped floating point values. So, you can't actually have swapped floating point values as floating point values).