Skip to main content

resolve_float_force_range

Macro resolve_float_force_range 

Source
macro_rules! resolve_float_force_range {
    ($ns:expr, $field:expr, $default_from:expr, $default_to:expr) => { ... };
}
Expand description

Resolves a numeric range, converting integers to floats if needed.

Handles empty ranges (..), bounded ranges, and partial ranges. Automatically converts integer values to f32.

ยงExamples

use ratslang::{compile_code, resolve_var, resolve_float_force_range, Rhs, Val, NumVal};
use anyhow::anyhow;

struct Configs {
    user: ratslang::VariableHistory,
    defaults: ratslang::VariableHistory,
}

let code = "range = 10..100";
let ast = compile_code(code)?;

let configs = Configs {
    user: ast.vars,
    defaults: ratslang::VariableHistory::new(vec![]),
};

let (min, max) = resolve_float_force_range!(configs, "range", 0.0, 200.0)?;
assert_eq!(min, 10.0);
assert_eq!(max, 100.0);