public static BitVectorProxy <T> From(BitVector <T> src) => new BitVectorProxy <T>(src);
public BitVectorProxy(BitVector <T> src) { data = src.Data.ToArray(); }
public static BitVector <N, T> ToBitVector <N, T>(this ReadOnlySpan <T> src, N n = default) where N : ITypeNat, new() where T : unmanaged => BitVector.Load(src, n);
public static BitVector <T> ToBitVector <T>(this Span <T> src, BitSize?len = null) where T : unmanaged => BitVector.Load(src, len);
public static BitVector64 ToBitVector <T>(this BitVector <T> src, N64 n) where T : unmanaged => src.Data.TakeUInt64();
public static BitVector64 ToBitVector <N, T>(this BitVector <N, T> src, N64 n) where T : unmanaged where N : ITypeNat, new() => src.Data.TakeUInt64();
public static BitVector32 ToBitVector32 <T>(this BitVector <T> src) where T : unmanaged => src.Data.TakeUInt32();
public static BitVector32 ToBitVector <N, T>(this BitVector <N, T> src, N32 n) where T : unmanaged where N : ITypeNat, new() => src.Data.TakeUInt32();
public static BitVector16 ToBitVector16 <N, T>(this BitVector <N, T> src) where T : unmanaged where N : ITypeNat, new() => src.Data.TakeUInt16();
public static BitVector16 ToBitVector16 <T>(this BitVector <T> src) where T : unmanaged => src.Data.TakeUInt16();
public static BitVector8 ToBitVector8 <T>(this BitVector <T> src) where T : unmanaged => src.Nonempty ? src.Bytes.First() : (byte)0;
public static BitVector <T> from <T>(T src, BitSize?n = null) where T : unmanaged => BitVector <T> .FromCell(src, n);
public static BitVector <N, T> from <N, T>(T src, N n = default) where N : ITypeNat, new() where T : unmanaged => BitVector <N, T> .FromCell(src);