@@ -19,6 +19,8 @@ import Foundation
1919
2020/// A type which builds a type-erased `ArrowArray`.
2121public protocol AnyArrowArrayBuilder {
22+ /// Returns an unparameterised `ArrowArray`.
23+ /// - Returns: The type-erased Arrow array.
2224 func toAnyArrowArray( ) throws ( ArrowError) -> AnyArrowArray
2325 func appendAny( _ val: Any ? )
2426}
@@ -73,8 +75,6 @@ extension ArrowArrayBuilderInternal {
7375 self . arrowType. getStride ( )
7476 }
7577
76- /// Returns an unparameterised `ArrowArray`.
77- /// - Returns: The type-erased Arrow array.
7878 public func toAnyArrowArray( ) throws ( ArrowError) -> AnyArrowArray {
7979 try self . finish ( )
8080 }
@@ -109,7 +109,7 @@ public class ArrowArrayBuilderBase<
109109 }
110110}
111111
112- /// A type which builds an `ArrowArray` with a numeric `ItemType` .
112+ /// An array builder for numeric types .
113113public class NumberArrayBuilder < ItemType> : ArrowArrayBuilderBase <
114114 FixedBufferBuilder < ItemType > ,
115115 FixedArray < ItemType >
@@ -120,6 +120,7 @@ where ItemType: Numeric, ItemType: BitwiseCopyable {
120120 }
121121}
122122
123+ /// A `String` array builder.
123124public class StringArrayBuilder : ArrowArrayBuilderBase <
124125 VariableBufferBuilder < String > ,
125126 StringArray
@@ -130,6 +131,7 @@ public class StringArrayBuilder: ArrowArrayBuilderBase<
130131 }
131132}
132133
134+ /// A `Data` array builder.
133135public class BinaryArrayBuilder : ArrowArrayBuilderBase <
134136 VariableBufferBuilder < Data > ,
135137 BinaryArray
@@ -140,6 +142,7 @@ public class BinaryArrayBuilder: ArrowArrayBuilderBase<
140142 }
141143}
142144
145+ /// A `Bool` array builder.
143146public class BoolArrayBuilder : ArrowArrayBuilderBase <
144147 BoolBufferBuilder , BoolArray
145148>
@@ -149,6 +152,7 @@ public class BoolArrayBuilder: ArrowArrayBuilderBase<
149152 }
150153}
151154
155+ /// A 32-bit date array builder.
152156public class Date32ArrayBuilder : ArrowArrayBuilderBase <
153157 Date32BufferBuilder ,
154158 Date32Array
@@ -159,6 +163,7 @@ public class Date32ArrayBuilder: ArrowArrayBuilderBase<
159163 }
160164}
161165
166+ /// A 64-bit date array builder.
162167public class Date64ArrayBuilder : ArrowArrayBuilderBase <
163168 Date64BufferBuilder ,
164169 Date64Array
@@ -169,6 +174,7 @@ public class Date64ArrayBuilder: ArrowArrayBuilderBase<
169174 }
170175}
171176
177+ // A 32-bit elaspsed time builder.
172178public class Time32ArrayBuilder : ArrowArrayBuilderBase <
173179 FixedBufferBuilder < Time32 > ,
174180 Time32Array
@@ -179,6 +185,7 @@ public class Time32ArrayBuilder: ArrowArrayBuilderBase<
179185 }
180186}
181187
188+ // A 64-bit elaspsed time builder.
182189public class Time64ArrayBuilder : ArrowArrayBuilderBase <
183190 FixedBufferBuilder < Time64 > ,
184191 Time64Array
@@ -189,6 +196,7 @@ public class Time64ArrayBuilder: ArrowArrayBuilderBase<
189196 }
190197}
191198
199+ // A Timestamp array builder.
192200public class TimestampArrayBuilder : ArrowArrayBuilderBase <
193201 FixedBufferBuilder < Int64 > ,
194202 TimestampArray
@@ -203,6 +211,7 @@ public class TimestampArrayBuilder: ArrowArrayBuilderBase<
203211
204212// MARK: Struct array builder.
205213
214+ /// Builds an array of structs.
206215public class StructArrayBuilder : ArrowArrayBuilderBase <
207216 StructBufferBuilder ,
208217 NestedArray
@@ -262,7 +271,9 @@ public class StructArrayBuilder: ArrowArrayBuilderBase<
262271
263272// MARK: List array builder.
264273
265- /// A type which can build an `NestedArray`containing exactly `ItemType`.
274+ /// Builds a `NestedArray`containing lists of `ItemType`.
275+ ///
276+ /// Both lists and items in lists are nullablie.
266277public class ListArrayBuilder : ArrowArrayBuilderBase <
267278 ListBufferBuilder ,
268279 NestedArray
@@ -271,18 +282,17 @@ public class ListArrayBuilder: ArrowArrayBuilderBase<
271282 let valueBuilder : any AnyArrowArrayBuilder
272283
273284 public override init ( _ elementType: ArrowType ) throws ( ArrowError) {
274-
275285 guard case . list( let field) = elementType else {
276286 throw . invalid( " Expected a field with type .list " )
277287 }
278-
279288 self . valueBuilder = try ArrowArrayBuilders . loadBuilder (
280289 arrowType: field. type
281290 )
282291 try super. init ( elementType)
283292 }
284293
285- // Overrides the default
294+ // Overrides the protocol extension.
295+ // Swift currently provides no marker for this.
286296 public func append( _ values: [ Any ? ] ? ) {
287297 self . bufferBuilder. append ( values)
288298 if let vals = values {
0 commit comments