pub struct InputMethodHandler { /* private fields */ }
Implementations§
Source§impl InputMethodHandler
impl InputMethodHandler
Sourcepub fn new(event_tx: Sender<InputMethodEvent>) -> Self
pub fn new(event_tx: Sender<InputMethodEvent>) -> Self
Examples found in repository?
examples/input_method.rs (line 14)
6async fn main() {
7 // create mpsc channel for interacting with the input_method handler
8 let (input_method_msg_tx, mut input_method_msg_rx) = mpsc::channel(128);
9
10 // create mpsc channel for receiving events from the input_method handler
11 let (input_method_event_tx, mut input_method_event_rx) = mpsc::channel(128);
12
13 // create the handler instance
14 let mut input_method_handler = InputMethodHandler::new(input_method_event_tx);
15
16
17 // start the input_method handler
18 let input_method_t = tokio::spawn(async move {
19 let _ = input_method_handler.run(input_method_msg_rx).await;
20 });
21
22 // receive all input_method events
23 let input_method_event_t = tokio::spawn(async move {
24 loop {
25 let msg = input_method_event_rx.recv().await;
26 if msg.is_none() {
27 continue;
28 }
29 println!("received input_method_event event={:?}", msg);
30 }
31 });
32
33 let _ = input_method_t.await.unwrap();
34 let _ = input_method_event_t.await.unwrap();
35}
Sourcepub async fn run(&mut self, msg_rx: Receiver<InputMethodMessage>)
pub async fn run(&mut self, msg_rx: Receiver<InputMethodMessage>)
Examples found in repository?
examples/input_method.rs (line 19)
6async fn main() {
7 // create mpsc channel for interacting with the input_method handler
8 let (input_method_msg_tx, mut input_method_msg_rx) = mpsc::channel(128);
9
10 // create mpsc channel for receiving events from the input_method handler
11 let (input_method_event_tx, mut input_method_event_rx) = mpsc::channel(128);
12
13 // create the handler instance
14 let mut input_method_handler = InputMethodHandler::new(input_method_event_tx);
15
16
17 // start the input_method handler
18 let input_method_t = tokio::spawn(async move {
19 let _ = input_method_handler.run(input_method_msg_rx).await;
20 });
21
22 // receive all input_method events
23 let input_method_event_t = tokio::spawn(async move {
24 loop {
25 let msg = input_method_event_rx.recv().await;
26 if msg.is_none() {
27 continue;
28 }
29 println!("received input_method_event event={:?}", msg);
30 }
31 });
32
33 let _ = input_method_t.await.unwrap();
34 let _ = input_method_event_t.await.unwrap();
35}
Auto Trait Implementations§
impl Freeze for InputMethodHandler
impl !RefUnwindSafe for InputMethodHandler
impl Send for InputMethodHandler
impl Sync for InputMethodHandler
impl Unpin for InputMethodHandler
impl !UnwindSafe for InputMethodHandler
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.