2
2
3
3
extern {
4
4
fn cargo_apk_injected_glue_get_native_window ( ) -> * const c_void ;
5
- fn cargo_apk_injected_glue_add_sender ( sender : * mut ( ) ) ;
6
- fn cargo_apk_injected_glue_add_sender_missing ( sender : * mut ( ) ) ;
7
- fn cargo_apk_injected_glue_add_sync_event_handler ( sender : * mut ( ) ) ;
8
- fn cargo_apk_injected_glue_remove_sync_event_handler ( sender : * mut ( ) ) ;
5
+ fn cargo_apk_injected_glue_add_sender ( sender : * mut c_void ) ;
6
+ fn cargo_apk_injected_glue_add_sender_missing ( sender : * mut c_void ) ;
7
+ fn cargo_apk_injected_glue_add_sync_event_handler ( sender : * mut c_void ) ;
8
+ fn cargo_apk_injected_glue_remove_sync_event_handler ( sender : * mut c_void ) ;
9
9
fn cargo_apk_injected_glue_set_multitouch ( multitouch : bool ) ;
10
- fn cargo_apk_injected_glue_write_log ( ptr : * const ( ) , len : usize ) ;
11
- fn cargo_apk_injected_glue_load_asset ( ptr : * const ( ) , len : usize ) -> * mut c_void ;
10
+ fn cargo_apk_injected_glue_write_log ( ptr : * const c_void , len : usize ) ;
11
+ fn cargo_apk_injected_glue_load_asset ( ptr : * const c_void , len : usize ) -> * mut c_void ;
12
12
fn cargo_apk_injected_glue_wake_event_loop ( ) ;
13
13
}
14
14
@@ -60,11 +60,20 @@ pub enum MotionAction {
60
60
Cancel ,
61
61
}
62
62
63
+ #[ derive( Clone , Copy , Debug ) ]
63
64
pub enum AssetError {
64
65
AssetMissing ,
65
66
EmptyBuffer ,
66
67
}
67
68
69
+ impl std:: fmt:: Display for AssetError {
70
+ fn fmt ( & self , f : & mut std:: fmt:: Formatter < ' _ > ) -> std:: fmt:: Result {
71
+ write ! ( f, "{:?}" , self )
72
+ }
73
+ }
74
+
75
+ impl std:: error:: Error for AssetError { }
76
+
68
77
// Trait used to dispatch sync events from the polling loop thread.
69
78
pub trait SyncEventHandler {
70
79
fn handle ( & mut self , event : & Event ) ;
@@ -81,7 +90,7 @@ pub fn add_sender(sender: Sender<Event>) {
81
90
82
91
/// Adds a SyncEventHandler which will receive sync events from the polling loop.
83
92
#[ inline]
84
- pub fn add_sync_event_handler ( handler : Box < SyncEventHandler > ) {
93
+ pub fn add_sync_event_handler ( handler : Box < dyn SyncEventHandler > ) {
85
94
unsafe {
86
95
let handler = Box :: into_raw ( Box :: new ( handler) ) as * mut _ ;
87
96
cargo_apk_injected_glue_add_sync_event_handler ( handler) ;
@@ -90,7 +99,7 @@ pub fn add_sync_event_handler(handler: Box<SyncEventHandler>) {
90
99
91
100
/// Removes a SyncEventHandler.
92
101
#[ inline]
93
- pub fn remove_sync_event_handler ( handler : * const SyncEventHandler ) {
102
+ pub fn remove_sync_event_handler ( handler : * const dyn SyncEventHandler ) {
94
103
unsafe {
95
104
let handler = Box :: into_raw ( Box :: new ( handler) ) as * mut _ ;
96
105
cargo_apk_injected_glue_remove_sync_event_handler ( handler) ;
@@ -143,7 +152,7 @@ pub fn load_asset(filename: &str) -> Result<Vec<u8>, AssetError> {
143
152
}
144
153
}
145
154
146
- // Wakes the event poll asynchronously and sends a Event::Wake event to the senders.
155
+ // Wakes the event poll asynchronously and sends a Event::Wake event to the senders.
147
156
// This method can be called on any thread. This method returns immediately.
148
157
#[ inline]
149
158
pub fn wake_event_loop ( ) {
0 commit comments