aboutsummaryrefslogtreecommitdiff
path: root/src/symbols/exception.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/symbols/exception.rs')
-rw-r--r--src/symbols/exception.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/symbols/exception.rs b/src/symbols/exception.rs
new file mode 100644
index 00000000..849db3bc
--- /dev/null
+++ b/src/symbols/exception.rs
@@ -0,0 +1,8 @@
+use std::slice;
+
+#[export_name = "cxxbridge03$exception"]
+unsafe extern "C" fn exception(ptr: *const u8, len: usize) -> *const u8 {
+ let slice = slice::from_raw_parts(ptr, len);
+ let boxed = String::from_utf8_lossy(slice).into_owned().into_boxed_str();
+ Box::leak(boxed).as_ptr()
+}