polars_arrow/array/list/
fmt.rs1use std::fmt::{Debug, Formatter, Result, Write};
2
3use super::super::fmt::{get_display, write_vec};
4use super::ListArray;
5use crate::offset::Offset;
6
7pub fn write_value<O: Offset, W: Write>(
8 array: &ListArray<O>,
9 index: usize,
10 null: &'static str,
11 f: &mut W,
12) -> Result {
13 let values = array.value(index);
14 let writer = |f: &mut W, index| get_display(values.as_ref(), null)(f, index);
15 write_vec(f, writer, None, values.len(), null, false)
16}
17
18impl<O: Offset> Debug for ListArray<O> {
19 fn fmt(&self, f: &mut Formatter<'_>) -> Result {
20 let writer = |f: &mut Formatter, index| write_value(self, index, "None", f);
21
22 let head = if O::IS_LARGE {
23 "LargeListArray"
24 } else {
25 "ListArray"
26 };
27 write!(f, "{head}")?;
28 write_vec(f, writer, self.validity(), self.len(), "None", false)
29 }
30}