7d34e6f3a4
Instead of setting a default value to a const and inside an .unwrap_or_else closure, lets set it only to the const and reuse that later in .unwrap_or To achieve that we move the "unrwap_or" code for param plumbing code generation a bit later so that we have easy access to the generated const name. As all this code is related to optional/default-value stuff it does read still relatively OK with that change, IMO. This has the advantage of not getting a warning like: > warning: constant is never used: `API_METHOD_EXAMPLE_FOO_PARAM_DEFAULT_FORCE` > --> src/api2/node/foo.rs > | > XY | force: { > | ^^^^^ > = note: `#[warn(dead_code)]` on by default When one has a API endpoint like: > #[api( > input: { > properties: { > force: { > type: bool, > optional: true, > default: false, > }, > }, > }, > ... > )] > /// Example > fn example_foo(force: bool) -> Result<(), Error> { > if force { > // do something > } > Ok(()) > } It effectively changes the output for optional parameters with a default set and no Option<T> from > let p = p.unwrap_or_else(|| #default_value); to > let p = p.unwrap_or(#const_name_for_default); where the "#const_name_for_default" is a pub const with value "#default_value" Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com> |
||
---|---|---|
.. | ||
debian | ||
src | ||
tests | ||
Cargo.toml |