Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-arrow/src/array/list/fmt.rs
6939 views
1
use std::fmt::{Debug, Formatter, Result, Write};
2
3
use super::super::fmt::{get_display, write_vec};
4
use super::ListArray;
5
use crate::offset::Offset;
6
7
pub 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
18
impl<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
}
31
32