diff options
Diffstat (limited to 'tests/ffi/cast.rs')
-rw-r--r-- | tests/ffi/cast.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/ffi/cast.rs b/tests/ffi/cast.rs new file mode 100644 index 00000000..30ecb6a8 --- /dev/null +++ b/tests/ffi/cast.rs @@ -0,0 +1,14 @@ +use std::os::raw::c_char; +use std::slice; + +pub fn c_char_to_unsigned(slice: &[c_char]) -> &[u8] { + let ptr = slice.as_ptr().cast::<u8>(); + let len = slice.len(); + unsafe { slice::from_raw_parts(ptr, len) } +} + +pub fn unsigned_to_c_char(slice: &[u8]) -> &[c_char] { + let ptr = slice.as_ptr().cast::<c_char>(); + let len = slice.len(); + unsafe { slice::from_raw_parts(ptr, len) } +} |