polars_arrow/scalar/
boolean.rs1use super::Scalar;
2use crate::datatypes::ArrowDataType;
3
4#[derive(Debug, Clone, PartialEq, Eq)]
6pub struct BooleanScalar {
7 value: Option<bool>,
8}
9
10impl BooleanScalar {
11 #[inline]
13 pub fn new(value: Option<bool>) -> Self {
14 Self { value }
15 }
16
17 #[inline]
19 pub fn value(&self) -> Option<bool> {
20 self.value
21 }
22}
23
24impl Scalar for BooleanScalar {
25 #[inline]
26 fn as_any(&self) -> &dyn std::any::Any {
27 self
28 }
29
30 #[inline]
31 fn is_valid(&self) -> bool {
32 self.value.is_some()
33 }
34
35 #[inline]
36 fn dtype(&self) -> &ArrowDataType {
37 &ArrowDataType::Boolean
38 }
39}
40
41impl From<Option<bool>> for BooleanScalar {
42 #[inline]
43 fn from(v: Option<bool>) -> Self {
44 Self::new(v)
45 }
46}