Struct termimad::EventSource
source · pub struct EventSource { /* private fields */ }
Expand description
a thread backed event listener emmiting events on a channel.
Additionnally to emmitting events, this source updates a sharable event count, protected by an Arc. This makes it easy for background computation to stop (or check if they should) when a user event is produced.
The event source isn’t tick based. It makes it possible to built TUI with no CPU consumption while idle.
Implementations§
source§impl EventSource
impl EventSource
sourcepub fn new() -> Result<Self, Error>
pub fn new() -> Result<Self, Error>
create a new source with default options
If desired, mouse support must be enabled and disabled in crossterm.
sourcepub fn with_options(options: EventSourceOptions) -> Result<Self, Error>
pub fn with_options(options: EventSourceOptions) -> Result<Self, Error>
create a new source
If desired, mouse support must be enabled and disabled in crossterm.
sourcepub fn unblock(&self, quit: bool)
pub fn unblock(&self, quit: bool)
either start listening again, or quit, depending on the passed bool. It’s mandatory to call this with quit=true at end for a proper ending of the thread (and its resources)
return a shared reference to the event count. Other threads can use it to check whether something happened (when there’s no parallel computation, the event channel is usually enough).
sourcepub fn receiver(&self) -> Receiver<TimedEvent>
pub fn receiver(&self) -> Receiver<TimedEvent>
return a new receiver for the channel emmiting events
sourcepub fn escape_sequence_receiver(&self) -> Receiver<EscapeSequence>
pub fn escape_sequence_receiver(&self) -> Receiver<EscapeSequence>
return a new receiver for the channel emmiting escape sequences
It’s a bounded channel and any escape sequence will be dropped when it’s full