src/pathname_sys.rs in faster_path-0.2.5 vs src/pathname_sys.rs in faster_path-0.2.6

- old
+ new

@@ -1,23 +1,27 @@ -use ruru::{AnyObject, Array, Object}; +use ruru::{AnyObject, Array, Object, AnyException}; use ruru::types::{Argc, Value, CallbackPtr}; use ruru::util::str_to_cstring; extern crate ruby_sys; -use self::ruby_sys::{class, util}; +use self::ruby_sys::{class, util, vm}; use ::pathname; +pub fn raise(exception: AnyException) { + unsafe { vm::rb_exc_raise(exception.value()); } +} + pub type ValueCallback<I, O> = extern "C" fn(Argc, *const Value, I) -> O; pub fn define_singleton_method<I: Object, O: Object>( - klass: Value, - name: &str, - callback: ValueCallback<I, O>, + klass: Value, + name: &str, + callback: ValueCallback<I, O>, ) { - let name = str_to_cstring(name); + let name = str_to_cstring(name); - unsafe { - class::rb_define_singleton_method(klass, name.as_ptr(), callback as CallbackPtr, -1); - } + unsafe { + class::rb_define_singleton_method(klass, name.as_ptr(), callback as CallbackPtr, -1); + } } // ruru doesn't support splat arguments yet pub extern fn pub_join(argc: Argc, argv: *const Value, _: AnyObject) -> AnyObject { let args = Value::from(0);