use cursive::event::{Event, EventResult}; use cursive::view::{View, ViewWrapper}; pub struct Modal { inner: T, } impl Modal { pub fn new(inner: T) -> Self { Modal { inner } } } impl ViewWrapper for Modal { wrap_impl!(self.inner: T); fn wrap_on_event(&mut self, ch: Event) -> EventResult { match self.inner.on_event(ch) { EventResult::Consumed(cb) => EventResult::Consumed(cb), _ => EventResult::Consumed(None), } } }