diff options
| -rw-r--r-- | src/cocoa_bridge.rs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/cocoa_bridge.rs b/src/cocoa_bridge.rs index 2773f11..df144f1 100644 --- a/src/cocoa_bridge.rs +++ b/src/cocoa_bridge.rs @@ -1,3 +1,5 @@ +use std::ffi::CString; + use cocoa::base::nil; use cocoa::foundation::{NSArray, NSAutoreleasePool, NSDictionary}; @@ -37,8 +39,8 @@ map <down> j"; // Somehow: switch mode inside Rust #[repr(C)] -pub struct KeyActionResult<'a> { - pub action: Option<&'a [char]>, +pub struct KeyActionResult { + pub action: Option<CString>, pub kind: MapKind, } @@ -57,8 +59,13 @@ map <down> j"; if let Some(map) = map { return match map.kind { MapKind::Map => { + // let action_bytes = map.action; + // let x = action_bytes.as_bytes(); + // let action = CStr::from_bytes_with_nul(x).unwrap(); + let action = CString::new(map.action.clone()).unwrap(); + Some(KeyActionResult { - action: None, //Some(m.action.as_str()), + action: Some(action), kind: MapKind::Map, }) }, |
