Macro metaheuristics_nature::setting_builder [−][src]
macro_rules! setting_builder { ( $(#[$attr:meta])* $v:vis struct $name:ident { $(@$base:ident, $(@$base_field:ident = $base_default:expr,)*)? $($(#[$field_attr:meta])* $field:ident: $field_type:ty = $field_default:expr,)+ } ) => { ... }; (@$base:ident, $($field:ident: $field_type:ty,)+) => { ... }; }
Expand description
Define a data structure and its builder functions.
Use @
to denote the base settings, such as population number, task category
or reporting interval.
use metaheuristics_nature::setting_builder; setting_builder! { /// Real-coded Genetic Algorithm settings. pub struct GASetting { @base, @pop_num = 500, cross: f64 = 0.95, mutate: f64 = 0.05, win: f64 = 0.95, delta: f64 = 5., } } let s = GASetting::default().pop_num(300).cross(0.9);