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

source

pub fn new() -> Result<Self, Error>

create a new source with default options

If desired, mouse support must be enabled and disabled in crossterm.

source

pub fn with_options(options: EventSourceOptions) -> Result<Self, Error>

create a new source

If desired, mouse support must be enabled and disabled in crossterm.

source

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)

source

pub fn shared_event_count(&self) -> Arc<AtomicUsize>

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).

source

pub fn receiver(&self) -> Receiver<TimedEvent>

return a new receiver for the channel emmiting events

source

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

Trait Implementations§

source§

impl Drop for EventSource

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.