package org.jerlang.erts.emulator;
/**
* Flags for bs_get_* / bs_put_* / bs_init* instructions.
*
* Source:
* https://github.com/erlang/otp/blob/maint/erts/emulator/beam/erl_bits.h
*/
public final class BitStringFlag {
/** Field is guaranteed to be byte-aligned. */
private static final int BSF_ALIGNED = 1;
/** Field is little-endian (otherwise big-endian). */
private static final int BSF_LITTLE = 2;
/** Field is signed (otherwise unsigned). */
private static final int BSF_SIGNED = 4;
/** Size in bs_init is exact. */
private static final int BSF_EXACT = 8;
/** Native endian. */
private static final int BSF_NATIVE = 16;
public static final boolean isAligned(int flag) {
return (flag & BSF_ALIGNED) == BSF_ALIGNED;
}
public static final boolean isExact(int flag) {
return (flag & BSF_EXACT) == BSF_EXACT;
}
public static final boolean isLittle(int flag) {
return (flag & BSF_LITTLE) == BSF_LITTLE;
}
public static final boolean isNative(int flag) {
return (flag & BSF_NATIVE) == BSF_NATIVE;
}
public static final boolean isSigned(int flag) {
return (flag & BSF_SIGNED) == BSF_SIGNED;
}
private BitStringFlag() {
// You can not instantiate this class.
}
}