polars_core/chunked_array/builder/
boolean.rs1use super::*;
2
3#[derive(Clone)]
4pub struct BooleanChunkedBuilder {
5 pub(crate) array_builder: MutableBooleanArray,
6 pub(crate) field: Field,
7}
8
9impl ChunkedBuilder<bool, BooleanType> for BooleanChunkedBuilder {
10 #[inline]
12 fn append_value(&mut self, v: bool) {
13 self.array_builder.push_value(v);
14 }
15
16 #[inline]
18 fn append_null(&mut self) {
19 self.array_builder.push_null();
20 }
21
22 fn finish(mut self) -> BooleanChunked {
23 let arr = self.array_builder.as_box();
24 ChunkedArray::new_with_compute_len(Arc::new(self.field), vec![arr])
25 }
26
27 fn shrink_to_fit(&mut self) {
28 self.array_builder.shrink_to_fit()
29 }
30}
31
32impl BooleanChunkedBuilder {
33 pub fn new(name: PlSmallStr, capacity: usize) -> Self {
34 BooleanChunkedBuilder {
35 array_builder: MutableBooleanArray::with_capacity(capacity),
36 field: Field::new(name, DataType::Boolean),
37 }
38 }
39}