summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs')
-rw-r--r--test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs30
1 files changed, 0 insertions, 30 deletions
diff --git a/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs b/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs
deleted file mode 100644
index ca9cf4e656..0000000000
--- a/test/rubygems/test_gem_ext_cargo_builder/custom_name/src/lib.rs
+++ /dev/null
@@ -1,30 +0,0 @@
-#[macro_use]
-extern crate rb_sys;
-
-use rb_sys::{rb_define_module, rb_define_module_function, rb_utf8_str_new, VALUE};
-use std::ffi::CString;
-
-ruby_extension!();
-
-#[no_mangle]
-unsafe extern "C" fn say_hello(_klass: VALUE) -> VALUE {
- let cstr = CString::new("Hello world!").unwrap();
-
- rb_utf8_str_new(cstr.as_ptr(), 12)
-}
-
-#[allow(non_snake_case)]
-#[no_mangle]
-pub extern "C" fn Init_custom_name() {
- let name = CString::new("CustomName").unwrap();
- let function_name = CString::new("say_hello").unwrap();
- // bindgen does not properly detect the arity of the ruby callback function, so we have to transmute
- let callback = unsafe {
- std::mem::transmute::<unsafe extern "C" fn(VALUE) -> VALUE, unsafe extern "C" fn() -> VALUE>(
- say_hello,
- )
- };
- let klass = unsafe { rb_define_module(name.as_ptr()) };
-
- unsafe { rb_define_module_function(klass, function_name.as_ptr(), Some(callback), 0) }
-}