Skip to main content

KeyEventInjector

Struct KeyEventInjector 

Source
pub struct KeyEventInjector;
Expand description

The type corresponding to the KeyEventInjector protocol. Provides the ability to inject KeyEvents into the keyboard subsystem.

§Roles

This protocol will typically be:

  • Implemented by platform components which process and deliver keyboard events.
  • Consumed by components which originiate keyboard events. E.g. an on-screen keyboard, or the Session Framework Input Pipeline.

This protocol should be using in preference to legacy protocols which provide similar functionality. Specifically, this means this protocol should be preferred over

  • fuchsia.ui.input.ImeService which provides InjectInput(), DispatchKey(), and DispatchKey3()
  • fuchsia.ui.input.InputMethodEditor, which provides InjectInput() and DispatchKey3()

§Notes

Products should take care to limit access to this protocol, as events injected with this protocol are indistinguishable from those coming from physical devices.

Trait Implementations§

Source§

impl Debug for KeyEventInjector

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl Discoverable for KeyEventInjector

Source§

const PROTOCOL_NAME: &'static str = "fuchsia.ui.input3.KeyEventInjector"

The service name to use to connect to this discoverable protocol.
Source§

impl<___H, ___T> DispatchClientMessage<___H, ___T> for KeyEventInjector
where ___H: KeyEventInjectorClientHandler<___T> + Send, ___T: Transport,

Source§

async fn on_event( handler: &mut ___H, message: Message<___T>, ) -> Result<(), ProtocolError<<___T as Transport>::Error>>

Handles a received client event with the given handler.
Source§

impl<___H, ___T> DispatchLocalClientMessage<___H, ___T> for KeyEventInjector
where ___H: KeyEventInjectorLocalClientHandler<___T>, ___T: Transport,

Source§

async fn on_event( handler: &mut ___H, message: Message<___T>, ) -> Result<(), ProtocolError<<___T as Transport>::Error>>

Handles a received client event with the given handler.
Source§

impl<___H, ___T> DispatchLocalServerMessage<___H, ___T> for KeyEventInjector
where ___H: KeyEventInjectorLocalServerHandler<___T>, ___T: Transport, KeyEventInjectorInjectRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,

Source§

async fn on_one_way( handler: &mut ___H, message: Message<___T>, ) -> Result<(), ProtocolError<<___T as Transport>::Error>>

Handles a received server one-way message with the given handler.
Source§

async fn on_two_way( handler: &mut ___H, message: Message<___T>, responder: Responder<___T>, ) -> Result<(), ProtocolError<<___T as Transport>::Error>>

Handles a received server two-way message with the given handler.
Source§

impl<___H, ___T> DispatchServerMessage<___H, ___T> for KeyEventInjector
where ___H: KeyEventInjectorServerHandler<___T> + Send, ___T: Transport, KeyEventInjectorInjectRequest<'de>: for<'de> Decode<<<___T as Transport>::RecvBuffer as AsDecoder<'de>>::Decoder, Constraint = ()>,

Source§

async fn on_one_way( handler: &mut ___H, message: Message<___T>, ) -> Result<(), ProtocolError<<___T as Transport>::Error>>

Handles a received server one-way message with the given handler.
Source§

async fn on_two_way( handler: &mut ___H, message: Message<___T>, responder: Responder<___T>, ) -> Result<(), ProtocolError<<___T as Transport>::Error>>

Handles a received server two-way message with the given handler.
Source§

impl<___T> HasConnectionHandles<___T> for KeyEventInjector
where ___T: Transport,

Source§

type Client = KeyEventInjectorClient<___T>

The client for the protocol. It must be a #[repr(transparent)] wrapper around Client<T>.
Source§

type Server = KeyEventInjectorServer<___T>

The server for the protocol. It must be a #[repr(transparent)] wrapper around Server<T>.
Source§

impl HasTransport for KeyEventInjector

Available on Fuchsia only.
Source§

type Transport = Channel

The default transport type for this protocol.
Source§

impl PartialEq for KeyEventInjector

Source§

fn eq(&self, other: &KeyEventInjector) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for KeyEventInjector

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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.

§

impl<T> InstanceFromServiceTransport<T> for T

§

fn from_service_transport(handle: T) -> T

Converts the given service transport handle of type T to [Self]
Source§

impl<T, U> Into<U> for T
where 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

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
§

impl<E> RunsTransport<Mpsc> for E

§

impl<E> RunsTransport<Mpsc> for E
where E: RunsTransport<Mpsc>,

Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

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

Source§

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.