1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
mod iterator;
use crate::chunked_array::Settings;
use crate::prelude::*;
impl ListChunked {
#[cfg(feature = "private")]
pub fn set_fast_explode(&mut self) {
self.bit_settings.insert(Settings::FAST_EXPLODE_LIST)
}
pub(crate) fn can_fast_explode(&self) -> bool {
self.bit_settings.contains(Settings::FAST_EXPLODE_LIST)
}
pub(crate) fn is_nested(&self) -> bool {
match self.dtype() {
DataType::List(inner) => matches!(&**inner, DataType::List(_)),
_ => unreachable!(),
}
}
pub fn to_logical(&mut self, inner_dtype: DataType) {
assert_eq!(inner_dtype.to_physical(), self.inner_dtype());
let fld = Arc::make_mut(&mut self.field);
fld.coerce(DataType::List(Box::new(inner_dtype)))
}
}