Sha256: d4448ecd5a56e7df92c39a937bdf2ef53b576d9a546f61131ff8196a0a4eb030

Contents?: true

Size: 1.25 KB

Versions: 7

Compression:

Stored size: 1.25 KB

Contents

use magnus::{block::Proc, value::Opaque, Ruby};
use polars::prelude::*;

use crate::RbExpr;

impl RbExpr {
    pub fn name_keep(&self) -> Self {
        self.inner.clone().name().keep().into()
    }

    pub fn name_map(&self, lambda: Proc) -> Self {
        let lambda = Opaque::from(lambda);
        self.inner
            .clone()
            .name()
            .map(move |name| {
                let lambda = Ruby::get().unwrap().get_inner(lambda);
                let out = lambda.call::<_, String>((name,));
                match out {
                    Ok(out) => Ok(out),
                    Err(e) => Err(PolarsError::ComputeError(
                        format!("Ruby function in 'name.map' produced an error: {}.", e).into(),
                    )),
                }
            })
            .into()
    }

    pub fn name_prefix(&self, prefix: String) -> Self {
        self.inner.clone().name().prefix(&prefix).into()
    }

    pub fn name_suffix(&self, suffix: String) -> Self {
        self.inner.clone().name().suffix(&suffix).into()
    }

    pub fn name_to_lowercase(&self) -> Self {
        self.inner.clone().name().to_lowercase().into()
    }

    pub fn name_to_uppercase(&self) -> Self {
        self.inner.clone().name().to_uppercase().into()
    }
}

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
polars-df-0.13.0 ext/polars/src/expr/name.rs
polars-df-0.12.0 ext/polars/src/expr/name.rs
polars-df-0.11.0 ext/polars/src/expr/name.rs
polars-df-0.10.0 ext/polars/src/expr/name.rs
polars-df-0.9.0 ext/polars/src/expr/name.rs
polars-df-0.8.0 ext/polars/src/expr/name.rs
polars-df-0.7.0 ext/polars/src/expr/name.rs