public static void WriteList(this IBufferWriter <byte> writer, IList value)
 {
     if (value.Count == 0)
     {
         writer.WriteCodeAndAdvance(TypeCodes.List0);
         return;
     }
 }
        public static void WriteULong(this IBufferWriter <byte> writer, ulong value)
        {
            if (value == 0)
            {
                writer.WriteCodeAndAdvance(TypeCodes.ULong0);
                return;
            }

            if (value <= byte.MaxValue)
            {
                writer.WriteByteValueAndAdvance(TypeCodes.SmallULong, (byte)value);
                return;
            }

            BinaryPrimitives.WriteUInt64BigEndian(GetSpanForValue(writer, TypeCodes.ULong, sizeof(ulong)), value);
            writer.Advance(sizeof(ulong) + 1);
        }