public override void Write(Thrift.SchemaElement tse, BinaryWriter writer, IList values, DataColumnStatistics statistics)
 {
     foreach (Interval interval in values)
     {
         writer.Write(interval.Months);
         writer.Write(interval.Days);
         writer.Write(interval.Millis);
     }
 }
        public override void Write(Thrift.SchemaElement tse, BinaryWriter writer, ArrayView values, DataColumnStatistics statistics)
        {
            int  n = 0;
            byte b = 0;

            byte[] buffer = new byte[values.Count / 8 + 1];
            int    ib     = 0;

            foreach (bool flag in values.GetValuesAndReturnArray <bool>())
            {
                if (flag)
                {
                    b |= (byte)(1 << n);
                }

                n++;
                if (n == 8)
                {
                    buffer[ib++] = b;
                    n            = 0;
                    b            = 0;
                }
            }

            if (n != 0)
            {
                buffer[ib] = b;
            }

            writer.Write(buffer);
        }
 public override void Write(Thrift.SchemaElement tse, BinaryWriter writer, ArrayView values, DataColumnStatistics statistics)
 {
     foreach (Interval interval in values.GetValuesAndReturnArray <Interval>())
     {
         writer.Write(interval.Months);
         writer.Write(interval.Days);
         writer.Write(interval.Millis);
     }
 }
        public override void Write(Thrift.SchemaElement tse, BinaryWriter writer, ArrayView values, DataColumnStatistics statistics)
        {
            switch (tse.Type)
            {
            case Thrift.Type.INT32:
                WriteAsInt32(tse, writer, values);
                break;

            case Thrift.Type.INT64:
                WriteAsInt64(tse, writer, values);
                break;

            case Thrift.Type.FIXED_LEN_BYTE_ARRAY:
                WriteAsFixedLengthByteArray(tse, writer, values);
                break;

            default:
                throw new InvalidDataException($"data type '{tse.Type}' does not represent a decimal");
            }
        }