Path: blob/main/crates/polars-ops/src/series/ops/is_between.rs
6939 views
use std::ops::BitAnd;12use polars_core::prelude::*;34use crate::series::ClosedInterval;56pub fn is_between(7s: &Series,8lower: &Series,9upper: &Series,10closed: ClosedInterval,11) -> PolarsResult<BooleanChunked> {12let left_cmp_op = match closed {13ClosedInterval::None | ClosedInterval::Right => Series::gt,14ClosedInterval::Both | ClosedInterval::Left => Series::gt_eq,15};16let right_cmp_op = match closed {17ClosedInterval::None | ClosedInterval::Left => Series::lt,18ClosedInterval::Both | ClosedInterval::Right => Series::lt_eq,19};20let left = left_cmp_op(s, lower)?;21let right = right_cmp_op(s, upper)?;22Ok(left.bitand(right))23}242526