/// <summary>Bit encode a none-able value into this handle</summary> /// <param name="value">Value to encode</param> /// <param name="traits"></param> public void EncodeNoneable64(long value, Bitwise.BitFieldTraits traits) { Contract.Requires <ArgumentException>(!traits.IsEmpty); Contract.Requires <ArgumentOutOfRangeException>(value.IsNoneOrPositive()); Bits.BitEncodeEnum((ulong)(value + 1), ref mBits.u64, ref mBitIndex, traits.Bitmask64); }
/// <summary>Bit decode a value from this handle</summary> /// <param name="value">Value decoded from this handle</param> /// <param name="traits"></param> public void DecodeNoneable64(out long value, Bitwise.BitFieldTraits traits) { Contract.Requires <ArgumentException>(!traits.IsEmpty); value = (long)Bits.BitDecodeNoneable(mBits.u64, ref mBitIndex, traits.Bitmask64); }
/// <summary>Bit decode a value from this handle</summary> /// <param name="value">Value decoded from this handle</param> /// <param name="traits"></param> public void DecodeNoneable32(out int value, Bitwise.BitFieldTraits traits) { Contract.Requires <ArgumentException>(!traits.IsEmpty); value = (int)Bits.BitDecodeNoneable(mBits.u64, ref mBitIndex, traits.Bitmask32); }
/// <summary>Bit encode a value into this handle</summary> /// <param name="value">Value to encode</param> /// <param name="traits"></param> public void Encode64(ulong value, Bitwise.BitFieldTraits traits) { Contract.Requires <ArgumentException>(!traits.IsEmpty); Bits.BitEncodeEnum(value, ref mBits.u64, ref mBitIndex, traits.Bitmask64); }