Esempio n. 1
0
        public static ref T pack <T>(ReadOnlySpan <Bit> src, ref T dst)
            where T : struct
        {
            var maxbytes = Unsafe.SizeOf <T>();
            var maxbits  = maxbytes * 8;
            var slicelen = math.min(src.Length, maxbits);

            Span <byte> bs = stackalloc byte[maxbytes];

            dst = MemoryMarshal.Cast <byte, T>(Bits.pack(src.Slice(0, slicelen), bs)).First();
            return(ref dst);
        }
Esempio n. 2
0
 public static Span <T> pack <T>(ReadOnlySpan <Bit> src, Span <T> dst)
     where T : struct
 {
     Bits.pack(src, dst.AsBytes());
     return(dst);
 }