minutus 0.5.0

mruby bridge for Rust
Documentation
use super::*;

macro_rules! define_int {
    ($t:ty) => {
        impl TryFromMrb for $t {
            fn try_from_mrb(value: MrbValue) -> MrbResult<$t> {
                unsafe {
                    if minu_fixnum_p(value.val) {
                        Ok(minu_fixnum_func(value.val) as $t)
                    } else {
                        Err(MrbConversionError::new("Fixnum"))
                    }
                }
            }
        }

        impl TryIntoMrb for $t {
            fn try_into_mrb(self, mrb: *mut minu_state) -> MrbResult<MrbValue> {
                unsafe { Ok(MrbValue::new(mrb, minu_fixnum_value(self as i64))) }
            }
        }
    };
}

define_int!(i64);
define_int!(i32);
define_int!(i16);
define_int!(i8);
define_int!(isize);

define_int!(u64);
define_int!(u32);
define_int!(u16);
define_int!(u8);
define_int!(usize);