polars_core/scalar/
new.rs1use std::sync::Arc;
2
3use super::Scalar;
4use crate::datatypes::time_unit::TimeUnit;
5use crate::prelude::{AnyValue, DataType, TimeZone};
6
7impl Scalar {
8 #[cfg(feature = "dtype-date")]
9 pub fn new_date(value: i32) -> Self {
10 Scalar::new(DataType::Date, AnyValue::Date(value))
11 }
12
13 #[cfg(feature = "dtype-datetime")]
14 pub fn new_datetime(value: i64, time_unit: TimeUnit, tz: Option<TimeZone>) -> Self {
15 Scalar::new(
16 DataType::Datetime(time_unit, tz.clone()),
17 AnyValue::DatetimeOwned(value, time_unit, tz.map(Arc::new)),
18 )
19 }
20
21 #[cfg(feature = "dtype-duration")]
22 pub fn new_duration(value: i64, time_unit: TimeUnit) -> Self {
23 Scalar::new(
24 DataType::Duration(time_unit),
25 AnyValue::Duration(value, time_unit),
26 )
27 }
28}