Refine packages.

This commit is contained in:
Stephen Chung
2020-08-20 22:11:41 +08:00
parent 38a6c15da1
commit 729ab99ec3
9 changed files with 210 additions and 191 deletions

View File

@@ -2,17 +2,20 @@ use crate::def_package;
use crate::fn_native::FnPtr;
use crate::plugin::*;
#[cfg(not(feature = "no_object"))]
use crate::engine::make_getter;
def_package!(crate:BasicFnPackage:"Basic Fn functions.", lib, {
set_exported_fn!(lib, "name", get_fn_name);
#[cfg(not(feature = "no_object"))]
set_exported_fn!(lib, make_getter("name"), get_fn_name);
lib.combine(exported_module!(fn_ptr_functions));
});
#[export_fn]
fn get_fn_name(f: &mut FnPtr) -> ImmutableString {
f.get_fn_name().clone()
#[export_module]
mod fn_ptr_functions {
#[inline(always)]
fn name(f: &mut FnPtr) -> ImmutableString {
f.get_fn_name().clone()
}
#[rhai_fn(get = "name")]
#[inline(always)]
fn name_prop(f: &mut FnPtr) -> ImmutableString {
name(f)
}
}