pub trait GainContextGenerator { type Context: GainContext; // Required method fn generate(&mut self, device: &Device) -> Self::Context; }