fix cli variable override

This commit is contained in:
brevalferrari 2025-06-06 00:57:25 +02:00
parent f7d5b57b66
commit 41aeef83d4

View file

@ -97,8 +97,9 @@ fn parse_and_compile(opts: &PlayOpts) -> anyhow::Result<Vec<f64>> {
opts.slopes()
.map(|(s, (v, e))| (s, VariableChange(*v, e.clone())))
.collect::<Vec<_>>(),
opts.variables()
.chain(HashMap::from(default_variables).iter())
HashMap::from(default_variables)
.iter()
.chain(opts.variables())
.map(|(v, _)| *v)
.collect::<Vec<_>>(),
);
@ -118,9 +119,10 @@ fn parse_and_compile(opts: &PlayOpts) -> anyhow::Result<Vec<f64>> {
let compiler = Compiler::from(Context::new(
'L'.to_string(),
'n'.to_string(),
opts.variables()
.map(|(a, b)| (a.to_string(), *b))
.chain(default_variables.map(|(c, v)| (c.to_string(), v))),
default_variables
.map(|(c, v)| (c.to_string(), v))
.into_iter()
.chain(opts.variables().map(|(a, b)| (a.to_string(), *b))),
opts.instrument().clone(),
opts.slopes()
.map(|(_, (a, b))| (a.to_string(), b.clone()))