org.ldk.util.UInt128 Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ldk-java Show documentation
Show all versions of ldk-java Show documentation
LDK Java Bindings and Release Binaries
package org.ldk.util;
import java.util.Arrays;
/**
* A 5-bit unsigned integer
*/
public class UInt128 {
private byte[] le_bytes;
/**
* Constructs a 128-bit integer from its little-endian representation
*/
public UInt128(byte[] le_bytes) {
if (le_bytes.length != 16) {
throw new IllegalArgumentException();
}
this.le_bytes = le_bytes;
}
/**
* Constructs a 128-bit integer from a long, ignoring the sign bit
*/
public UInt128(long val) {
byte[] le_bytes = new byte[16];
for (int i = 0; i < 8; i++)
le_bytes[i] = (byte) ((val >> i*8) & 0xff);
this.le_bytes = le_bytes;
}
/**
* @return The value as 16 little endian bytes
*/
public byte[] getLEBytes() { return le_bytes; }
@Override public boolean equals(Object o) {
if (o == null || !(o instanceof UInt128)) return false;
return Arrays.equals(le_bytes, ((UInt128) o).le_bytes);
}
@Override public int hashCode() { return Arrays.hashCode(le_bytes); }
}