polars_arrow/array/struct_/
fmt.rs1use std::fmt::{Debug, Formatter, Result, Write};
2
3use super::super::fmt::{get_display, write_map, write_vec};
4use super::StructArray;
5
6pub fn write_value<W: Write>(
7 array: &StructArray,
8 index: usize,
9 null: &'static str,
10 f: &mut W,
11) -> Result {
12 let writer = |f: &mut W, _index| {
13 for (i, (field, column)) in array.fields().iter().zip(array.values()).enumerate() {
14 if i != 0 {
15 write!(f, ", ")?;
16 }
17 let writer = get_display(column.as_ref(), null);
18 write!(f, "{}: ", field.name)?;
19 writer(f, index)?;
20 }
21 Ok(())
22 };
23
24 write_map(f, writer, None, 1, null, false)
25}
26
27impl Debug for StructArray {
28 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
29 let writer = |f: &mut Formatter, index| write_value(self, index, "None", f);
30
31 write!(f, "StructArray")?;
32 write_vec(f, writer, self.validity(), self.len(), "None", false)
33 }
34}