use tokio::sync::oneshot; use eyre::Result; enum InternalEvent { } enum EventKind { Message, Internal(InternalEvent), } struct Event { kind: EventKind, result_channel: oneshot::Receiver>, }