use super::{Component, Event, EventCtx}; impl Component for (A, B) where A: Component, B: Component, { type Msg = T; fn event(&mut self, ctx: &mut EventCtx, event: Event) -> Option { self.0 .event(ctx, event) .or_else(|| self.1.event(ctx, event)) } fn paint(&mut self) { self.0.paint(); self.1.paint(); } } impl Component for (A, B, C) where A: Component, B: Component, C: Component, { type Msg = T; fn event(&mut self, ctx: &mut EventCtx, event: Event) -> Option { self.0 .event(ctx, event) .or_else(|| self.1.event(ctx, event)) .or_else(|| self.2.event(ctx, event)) } fn paint(&mut self) { self.0.paint(); self.1.paint(); self.2.paint(); } }