Skip to content

Commit 1852c33

Browse files
authored
Minor: Add docs for GenericBinaryBuilder, links to GenericStringBuilder (#5597)
* Minor: Add docs for GenericBinaryBuilder, links to GenericStringBuilder * Update arrow-array/src/builder/generic_bytes_builder.rs
1 parent c203785 commit 1852c33

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

arrow-array/src/builder/generic_bytes_builder.rs

+26-2
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ use std::fmt::Write;
2626
use std::sync::Arc;
2727

2828
/// Builder for [`GenericByteArray`]
29+
///
30+
/// For building strings, see docs on [`GenericStringBuilder`].
31+
/// For building binary, see docs on [`GenericBinaryBuilder`].
2932
pub struct GenericByteBuilder<T: ByteArrayType> {
3033
value_builder: UInt8BufferBuilder,
3134
offsets_builder: BufferBuilder<T::Offset>,
@@ -222,11 +225,12 @@ impl<T: ByteArrayType, V: AsRef<T::Native>> Extend<Option<V>> for GenericByteBui
222225
/// Array builder for [`GenericStringArray`][crate::GenericStringArray]
223226
///
224227
/// Values can be appended using [`GenericByteBuilder::append_value`], and nulls with
225-
/// [`GenericByteBuilder::append_null`] as normal.
228+
/// [`GenericByteBuilder::append_null`].
226229
///
227-
/// Additionally implements [`std::fmt::Write`] with any written data included in the next
230+
/// Additionally, implements [`std::fmt::Write`] with any written data included in the next
228231
/// appended value. This allows use with [`std::fmt::Display`] without intermediate allocations
229232
///
233+
/// # Example
230234
/// ```
231235
/// # use std::fmt::Write;
232236
/// # use arrow_array::builder::GenericStringBuilder;
@@ -257,6 +261,26 @@ impl<O: OffsetSizeTrait> Write for GenericStringBuilder<O> {
257261
}
258262

259263
/// Array builder for [`GenericBinaryArray`][crate::GenericBinaryArray]
264+
///
265+
/// Values can be appended using [`GenericByteBuilder::append_value`], and nulls with
266+
/// [`GenericByteBuilder::append_null`].
267+
///
268+
/// # Example
269+
/// ```
270+
/// # use arrow_array::builder::GenericBinaryBuilder;
271+
/// let mut builder = GenericBinaryBuilder::<i32>::new();
272+
///
273+
/// // Write data
274+
/// builder.append_value("foo");
275+
///
276+
/// // Write second value
277+
/// builder.append_value(&[0,1,2]);
278+
///
279+
/// let array = builder.finish();
280+
/// // binary values
281+
/// assert_eq!(array.value(0), b"foo");
282+
/// assert_eq!(array.value(1), b"\x00\x01\x02");
283+
/// ```
260284
pub type GenericBinaryBuilder<O> = GenericByteBuilder<GenericBinaryType<O>>;
261285

262286
#[cfg(test)]

arrow-array/src/builder/mod.rs

+8
Original file line numberDiff line numberDiff line change
@@ -305,13 +305,21 @@ pub type ListBuilder<T> = GenericListBuilder<i32, T>;
305305
pub type LargeListBuilder<T> = GenericListBuilder<i64, T>;
306306

307307
/// Builder for [`BinaryArray`](crate::array::BinaryArray)
308+
///
309+
/// See examples on [`GenericBinaryBuilder`]
308310
pub type BinaryBuilder = GenericBinaryBuilder<i32>;
309311

310312
/// Builder for [`LargeBinaryArray`](crate::array::LargeBinaryArray)
313+
///
314+
/// See examples on [`GenericBinaryBuilder`]
311315
pub type LargeBinaryBuilder = GenericBinaryBuilder<i64>;
312316

313317
/// Builder for [`StringArray`](crate::array::StringArray)
318+
///
319+
/// See examples on [`GenericStringBuilder`]
314320
pub type StringBuilder = GenericStringBuilder<i32>;
315321

316322
/// Builder for [`LargeStringArray`](crate::array::LargeStringArray)
323+
///
324+
/// See examples on [`GenericStringBuilder`]
317325
pub type LargeStringBuilder = GenericStringBuilder<i64>;

0 commit comments

Comments
 (0)