Shared Rust kernels

catalogue/logical_more

All modules · quoted at commit 9e1884369a67 of DnaCalc/DnaCalc. Comments are the source's own.

selected · 7 lines · calc-func/src/catalogue/logical_more.rs on GitHub
fn selected(value: &CalcValue) -> CalcValue {
    if value.is_missing() {
        CalcValue::number(0.0)
    } else {
        value.clone()
    }
}

Used by 2 functions.

selection · 12 lines · calc-func/src/catalogue/logical_more.rs on GitHub
/// A selected result may be an array. The caller owns lifting array conditions/cases;
/// scalar selectors return their chosen result whole, without inspecting unused results.
/// A callable keeps its identity here; worksheet publication owns its visible core.
fn selection(
    id: FunctionId,
    arguments: &[CalcValue],
    services: &EvalServices<'_>,
    select: fn(&Site<'_>, &[CalcValue]) -> Step<CalcValue>,
) -> Result<CalcValue, FunctionFault> {
    let site = Site::new(id, services);
    Site::finish(site.binary64().and_then(|()| select(&site, arguments)))
}

Used by 2 functions.