1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
use core::errors::Result; pub trait Initializer { type Options; fn initialize(&self, _: &mut Self::Options) -> Result<()> { Ok(()) } } /// A vector of listeners is a valid listener. impl<O> Initializer for Vec<Box<Initializer<Options = O>>> { type Options = O; fn initialize(&self, options: &mut Self::Options) -> Result<()> { for listeners in self { listeners.initialize(options)?; } Ok(()) } }