Struct NetworkOrder

Represents an unsigned integer as an ubyte range.

struct NetworkOrder(uint L)
  
if (L > (ubyte).sizeof && (L <= (ulong).sizeof));

The range is bidirectional. The byte order is always big-endian.

It can accept any unsigned integral type but the value should fit in L bytes.

Constructors

NameDescription
this (value) Constructs a new range.

Properties

NameTypeDescription
back[get] ubyte
empty[get] bool
front[get] ubyte
length[get] size_t

Methods

NameDescription
popBack () Eliminates the LSB.
popFront () Eliminates the MSB.
save ()

Parameters

NameDescription
L Desired range length.

Example

auto networkOrder = NetworkOrder!3(0xae34e2u);
assert(!networkOrder.empty);
assert(networkOrder.front == 0xae);

networkOrder.popFront();
assert(networkOrder.length == 2);
assert(networkOrder.front == 0x34);
assert(networkOrder.back == 0xe2);

networkOrder.popBack();
assert(networkOrder.length == 1);
assert(networkOrder.front == 0x34);
assert(networkOrder.front == 0x34);

networkOrder.popFront();
assert(networkOrder.empty);