Path: blob/main/crates/polars-expr/src/dispatch/range/mod.rs
7884 views
use std::sync::Arc;12use polars_plan::dsl::{ColumnsUdf, SpecialEq};3use polars_plan::plans::IRRangeFunction;45#[cfg(feature = "dtype-datetime")]6mod datetime_range;7mod int_range;8mod linear_space;9#[cfg(feature = "dtype-time")]10mod time_range;11mod utils;1213pub fn function_expr_to_udf(func: IRRangeFunction) -> SpecialEq<Arc<dyn ColumnsUdf>> {14use IRRangeFunction::*;15match func {16IntRange { step, dtype } => {17map_as_slice!(int_range::int_range, step, dtype.clone())18},19IntRanges { dtype } => {20map_as_slice!(int_range::int_ranges, dtype.clone())21},22LinearSpace { closed } => {23map_as_slice!(linear_space::linear_space, closed)24},25LinearSpaces {26closed,27array_width,28} => {29map_as_slice!(linear_space::linear_spaces, closed, array_width)30},31#[cfg(feature = "dtype-date")]32DateRange {33interval,34closed,35arg_type,36} => {37map_as_slice!(datetime_range::date_range, interval, closed, arg_type) // TODO! num_samples38},39#[cfg(feature = "dtype-date")]40DateRanges {41interval,42closed,43arg_type,44} => {45map_as_slice!(datetime_range::date_ranges, interval, closed, arg_type) // TODO! num_samples46},47#[cfg(feature = "dtype-datetime")]48DatetimeRange {49interval,50closed,51time_unit: _,52time_zone: _,53arg_type,54} => {55map_as_slice!(datetime_range::datetime_range, interval, closed, arg_type) // TODO! num_samples56},57#[cfg(feature = "dtype-datetime")]58DatetimeRanges {59interval,60closed,61time_unit: _,62time_zone: _,63arg_type,64} => {65map_as_slice!(datetime_range::datetime_ranges, interval, closed, arg_type) // TODO! num_samples66},67#[cfg(feature = "dtype-time")]68TimeRange { interval, closed } => {69map_as_slice!(time_range::time_range, interval, closed)70},71#[cfg(feature = "dtype-time")]72TimeRanges { interval, closed } => {73map_as_slice!(time_range::time_ranges, interval, closed)74},75}76}777879