Refine package API.

This commit is contained in:
Stephen Chung
2020-04-22 14:55:40 +08:00
parent c40c0a0bc3
commit 9a1c715aad
13 changed files with 147 additions and 36 deletions

View File

@@ -37,7 +37,7 @@ macro_rules! reg_tri { ($lib:expr, $op:expr, $func:ident, $($par:ty),*) => {
}
#[cfg(not(feature = "no_index"))]
def_package!(BasicArrayPackage:"Basic array utilities.", lib, {
def_package!(crate:BasicArrayPackage:"Basic array utilities.", lib, {
reg_op!(lib, "push", push, INT, bool, char, String, Array, ());
reg_tri!(lib, "pad", pad, INT, bool, char, String, Array, ());
reg_tri!(lib, "insert", ins, INT, bool, char, String, Array, ());
@@ -71,7 +71,7 @@ def_package!(BasicArrayPackage:"Basic array utilities.", lib, {
reg_unary_mut(
lib,
"pop",
|list: &mut Array| list.pop().unwrap_or_else(|| Dynamic::from_unit()),
|list: &mut Array| list.pop().unwrap_or_else(|| ().into()),
pass,
);
reg_unary_mut(
@@ -79,7 +79,7 @@ def_package!(BasicArrayPackage:"Basic array utilities.", lib, {
"shift",
|list: &mut Array| {
if !list.is_empty() {
Dynamic::from_unit()
().into()
} else {
list.remove(0)
}
@@ -91,7 +91,7 @@ def_package!(BasicArrayPackage:"Basic array utilities.", lib, {
"remove",
|list: &mut Array, len: INT| {
if len < 0 || (len as usize) >= list.len() {
Dynamic::from_unit()
().into()
} else {
list.remove(len as usize)
}