Sha256: 677fddb03371aa59f5171673c1f7e23b931c98e0c597cdb570b34aa3e06fa9e8

Contents?: true

Size: 1.62 KB

Versions: 8

Compression:

Stored size: 1.62 KB

Contents

use polars::lazy::dsl;

use crate::RbExpr;

pub fn when(condition: &RbExpr) -> RbWhen {
    RbWhen {
        inner: dsl::when(condition.inner.clone()),
    }
}

#[magnus::wrap(class = "Polars::RbWhen")]
#[derive(Clone)]
pub struct RbWhen {
    pub inner: dsl::When,
}

#[magnus::wrap(class = "Polars::RbThen")]
#[derive(Clone)]
pub struct RbThen {
    pub inner: dsl::Then,
}

#[magnus::wrap(class = "Polars::RbChainedWhen")]
#[derive(Clone)]
pub struct RbChainedWhen {
    pub inner: dsl::ChainedWhen,
}

#[magnus::wrap(class = "Polars::RbChainedThen")]
#[derive(Clone)]
pub struct RbChainedThen {
    pub inner: dsl::ChainedThen,
}

impl RbWhen {
    pub fn then(&self, statement: &RbExpr) -> RbThen {
        RbThen {
            inner: self.inner.clone().then(statement.inner.clone()),
        }
    }
}

impl RbThen {
    pub fn when(&self, condition: &RbExpr) -> RbChainedWhen {
        RbChainedWhen {
            inner: self.inner.clone().when(condition.inner.clone()),
        }
    }

    pub fn otherwise(&self, statement: &RbExpr) -> RbExpr {
        self.inner.clone().otherwise(statement.inner.clone()).into()
    }
}

impl RbChainedWhen {
    pub fn then(&self, statement: &RbExpr) -> RbChainedThen {
        RbChainedThen {
            inner: self.inner.clone().then(statement.inner.clone()),
        }
    }
}

impl RbChainedThen {
    pub fn when(&self, condition: &RbExpr) -> RbChainedWhen {
        RbChainedWhen {
            inner: self.inner.clone().when(condition.inner.clone()),
        }
    }

    pub fn otherwise(&self, statement: &RbExpr) -> RbExpr {
        self.inner.clone().otherwise(statement.inner.clone()).into()
    }
}

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
polars-df-0.17.0 ext/polars/src/functions/whenthen.rs
polars-df-0.16.0 ext/polars/src/functions/whenthen.rs
polars-df-0.15.0 ext/polars/src/functions/whenthen.rs
polars-df-0.14.0 ext/polars/src/functions/whenthen.rs
polars-df-0.13.0 ext/polars/src/functions/whenthen.rs
polars-df-0.12.0 ext/polars/src/functions/whenthen.rs
polars-df-0.11.0 ext/polars/src/functions/whenthen.rs
polars-df-0.10.0 ext/polars/src/functions/whenthen.rs