polars_arrow/array/binview/
fmt.rs

1use std::fmt::{Debug, Formatter, Result, Write};
2
3use super::super::fmt::write_vec;
4use super::BinaryViewArrayGeneric;
5use crate::array::binview::ViewType;
6use crate::array::{Array, BinaryViewArray, Utf8ViewArray};
7
8pub fn write_value<'a, T: ViewType + ?Sized, W: Write>(
9    array: &'a BinaryViewArrayGeneric<T>,
10    index: usize,
11    f: &mut W,
12) -> Result
13where
14    &'a T: Debug,
15{
16    let bytes = array.value(index).to_bytes();
17    let writer = |f: &mut W, index| write!(f, "{}", bytes[index]);
18
19    write_vec(f, writer, None, bytes.len(), "None", false)
20}
21
22impl Debug for BinaryViewArray {
23    fn fmt(&self, f: &mut Formatter<'_>) -> Result {
24        let writer = |f: &mut Formatter, index| write_value(self, index, f);
25        write!(f, "BinaryViewArray")?;
26        write_vec(f, writer, self.validity(), self.len(), "None", false)
27    }
28}
29
30impl Debug for Utf8ViewArray {
31    fn fmt(&self, f: &mut Formatter<'_>) -> Result {
32        let writer = |f: &mut Formatter, index| write!(f, "{}", self.value(index));
33        write!(f, "Utf8ViewArray")?;
34        write_vec(f, writer, self.validity(), self.len(), "None", false)
35    }
36}