Skip to content

Commit fb455c0

Browse files
committed
fix doctest
1 parent 97f99da commit fb455c0

File tree

2 files changed

+25
-2
lines changed

2 files changed

+25
-2
lines changed

parquet-variant-compute/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ pub mod variant_get;
4646
mod variant_to_arrow;
4747

4848
pub use variant_array::{ShreddingState, VariantArray};
49-
pub use variant_array_builder::VariantArrayBuilder;
49+
pub use variant_array_builder::{VariantArrayBuilder, VariantValueArrayBuilder};
5050

5151
pub use cast_to_variant::{cast_to_variant, cast_to_variant_with_options};
5252
pub use from_json::json_to_variant;

parquet-variant-compute/src/variant_array_builder.rs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,30 @@ impl VariantValueArrayBuilder {
302302
ValueBuilder::append_variant_bytes(self.parent_state(&mut metadata_builder), value);
303303
}
304304

305-
/// Creates a builder-specific parent state
305+
/// Creates a builder-specific parent state.
306+
///
307+
/// For example, this can be useful for code that wants to copy a subset of fields from an
308+
/// object `value` as a new row of `value_array_builder`:
309+
///
310+
/// ```no_run
311+
/// # use parquet_variant::{ObjectBuilder, ReadOnlyMetadataBuilder, Variant};
312+
/// # use parquet_variant_compute::VariantValueArrayBuilder;
313+
/// # let value = Variant::Null;
314+
/// # let mut value_array_builder = VariantValueArrayBuilder::new(0);
315+
/// # fn should_keep(field_name: &str) -> bool { todo!() };
316+
/// let Variant::Object(obj) = value else {
317+
/// panic!("Not a variant object");
318+
/// };
319+
/// let mut metadata_builder = ReadOnlyMetadataBuilder::new(obj.metadata.clone());
320+
/// let state = value_array_builder.parent_state(&mut metadata_builder);
321+
/// let mut object_builder = ObjectBuilder::new(state, false);
322+
/// for (field_name, field_value) in obj.iter() {
323+
/// if should_keep(field_name) {
324+
/// object_builder.insert_bytes(field_name, field_value);
325+
/// }
326+
/// }
327+
/// object_builder.finish(); // appends the new object
328+
/// ```
306329
pub fn parent_state<'a>(
307330
&'a mut self,
308331
metadata_builder: &'a mut dyn MetadataBuilder,

0 commit comments

Comments
 (0)