@Override
    public boolean equals(final Object o) {
        if (this == o) {
            return true;
        }
        if (o == null || getClass() != o.getClass()) {
            return false;
        }
        final UnsignedLong that = (UnsignedLong) o;
        return value == that.value && unsignedBytes.equals(that.unsignedBytes);
    }
Represents an unsigned long that fits in length bytes. If a length of 8
is used then it can only represent numbers up to {@link Long#MAX_VALUE}.
See {@link UnsignedBytesInstances} for max values for different byte lengths.
stroom-lmdb/src/main/java/stroom/lmdb/serde/UnsignedLong.java