Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pola-rs
GitHub Repository: pola-rs/polars
Path: blob/main/crates/polars-ops/src/series/ops/is_between.rs
6939 views
1
use std::ops::BitAnd;
2
3
use polars_core::prelude::*;
4
5
use crate::series::ClosedInterval;
6
7
pub fn is_between(
8
s: &Series,
9
lower: &Series,
10
upper: &Series,
11
closed: ClosedInterval,
12
) -> PolarsResult<BooleanChunked> {
13
let left_cmp_op = match closed {
14
ClosedInterval::None | ClosedInterval::Right => Series::gt,
15
ClosedInterval::Both | ClosedInterval::Left => Series::gt_eq,
16
};
17
let right_cmp_op = match closed {
18
ClosedInterval::None | ClosedInterval::Left => Series::lt,
19
ClosedInterval::Both | ClosedInterval::Right => Series::lt_eq,
20
};
21
let left = left_cmp_op(s, lower)?;
22
let right = right_cmp_op(s, upper)?;
23
Ok(left.bitand(right))
24
}
25
26