Right now we have a bunch of stuff in Config which make sense for all search algorithms but we don't pass to them in favour of the more specific BanditConfig etc.
It somehow simplifies things because now we can't end up with a wrong config (e.g. a BoundOrder config when we are in bandit code), but it is also annoying because we don't have access to those common config options.
A better way of doing this would be to have a CommonConfig struct with the common config options which we can pass along, and #[serde(flatten)] it into the Config struct to keep the existing fields.
Right now we have a bunch of stuff in
Configwhich make sense for all search algorithms but we don't pass to them in favour of the more specificBanditConfigetc.It somehow simplifies things because now we can't end up with a wrong config (e.g. a
BoundOrderconfig when we are in bandit code), but it is also annoying because we don't have access to those common config options.A better way of doing this would be to have a
CommonConfigstruct with the common config options which we can pass along, and#[serde(flatten)]it into theConfigstruct to keep the existing fields.