예제 #1
0
            /// <summary>
            /// Start a new variable-length list slot
            ///
            /// This function should be called before beginning to append elements to the
            /// value builder
            /// </summary>
            /// <returns></returns>
            public Builder Append()
            {
                ValueOffsetsBufferBuilder.Append(ValueBuilder.Length);
                ValidityBufferBuilder.Append(true);

                return(this);
            }
예제 #2
0
 public Builder Clear()
 {
     ValueOffsetsBufferBuilder.Clear();
     ValueBuilder.Clear();
     ValidityBufferBuilder.Clear();
     return(this);
 }
예제 #3
0
            public Builder AppendNull()
            {
                ValueOffsetsBufferBuilder.Append(ValueBuilder.Length);
                ValidityBufferBuilder.Append(false);
                NullCount++;

                return(this);
            }
예제 #4
0
            public ListArray Build(MemoryAllocator allocator = default)
            {
                Append();

                return(new ListArray(DataType, Length - 1,
                                     ValueOffsetsBufferBuilder.Build(allocator), ValueBuilder.Build(allocator),
                                     new ArrowBuffer(), 0, 0));
            }
예제 #5
0
            public ListArray Build(MemoryAllocator allocator = default)
            {
                Append();

                var validityBuffer = NullCount > 0
                                        ? ValidityBufferBuilder.Build(allocator).ValueBuffer
                                        : ArrowBuffer.Empty;

                return(new ListArray(DataType, Length - 1,
                                     ValueOffsetsBufferBuilder.Build(allocator), ValueBuilder.Build(allocator),
                                     validityBuffer, NullCount, 0));
            }
예제 #6
0
 public Builder Resize(int length)
 {
     ValueOffsetsBufferBuilder.Resize(length + 1);
     ValidityBufferBuilder.Resize(length + 1);
     return(this);
 }
예제 #7
0
 public Builder Reserve(int capacity)
 {
     ValueOffsetsBufferBuilder.Reserve(capacity + 1);
     ValidityBufferBuilder.Reserve(capacity + 1);
     return(this);
 }