pub struct KeyClient {
rx: KConsumer<KeyEvent>,
}
Expand description
A client that receives KeyEvent
s from a KeyboardService
.
Fields§
§rx: KConsumer<KeyEvent>
Implementations§
source§impl KeyClient
impl KeyClient
sourcepub async fn from_registry(
kernel: &'static Kernel,
subscribe: Subscribe,
) -> Result<Self, FromRegistryError>
pub async fn from_registry( kernel: &'static Kernel, subscribe: Subscribe, ) -> Result<Self, FromRegistryError>
Obtain a KeyClient
If the KeyboardService
hasn’t been registered yet, we will retry until it
has been registered.
sourcepub async fn from_registry_no_retry(
kernel: &'static Kernel,
subscribe: Subscribe,
) -> Result<Self, FromRegistryError>
pub async fn from_registry_no_retry( kernel: &'static Kernel, subscribe: Subscribe, ) -> Result<Self, FromRegistryError>
Obtain an KeyClient
Does NOT attempt to get an KeyboardService
handle more than once.
Prefer KeyClient::from_registry
unless you will not be spawning one
around the same time as obtaining a client.
async fn from_handle( subscribe: Subscribe, handle: KernelHandle<KeyboardService>, ) -> Result<Self, FromRegistryError>
sourcepub async fn next(&mut self) -> Result<KeyEvent, KeyClientError>
pub async fn next(&mut self) -> Result<KeyEvent, KeyClientError>
Returns the next KeyEvent
received from the KeyboardService
.
§Returns
Ok
(
KeyEvent
)
when a keyboard event is received.Err
(
KeyClientError
)
if theKeyboardService
is no longer available.
sourcepub async fn next_char(&mut self) -> Result<char, KeyClientError>
pub async fn next_char(&mut self) -> Result<char, KeyClientError>
Returns the next Unicode char
received from the KeyboardService
.
Any KeyEvent
s which are not Unicode char
s are skipped. This
method is equivalent to calling KeyEvent::into_char
on the
KeyEvent
returned by KeyClient::next
.
§Returns
Ok
(
char
)
if a keyboard event is received and the keyboard event corresponds to a Unicodechar
Err
(
KeyClientError
)
if theKeyboardService
is no longer available.
Auto Trait Implementations§
impl Freeze for KeyClient
impl !RefUnwindSafe for KeyClient
impl Send for KeyClient
impl Sync for KeyClient
impl Unpin for KeyClient
impl !UnwindSafe for KeyClient
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> CheckedAs for T
impl<T> CheckedAs for T
source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
source§fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ
source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.