use engula_apis::*;
macro_rules! call_expr {
($func:expr) => {
CallExpr {
func: $func as i32,
args: vec![],
}
};
($func:expr, $arg0:expr) => {
CallExpr {
func: $func as i32,
args: vec![$arg0.into()],
}
};
}
pub fn load() -> CallExpr {
call_expr!(Function::Load)
}
pub fn store(value: impl Into<Value>) -> CallExpr {
call_expr!(Function::Store, value.into())
}
pub fn reset() -> CallExpr {
call_expr!(Function::Reset)
}
pub fn add(value: impl Into<Value>) -> CallExpr {
call_expr!(Function::Add, value.into())
}
pub fn sub(value: impl Into<Value>) -> CallExpr {
call_expr!(Function::Sub, value.into())
}
pub fn len() -> CallExpr {
call_expr!(Function::Len)
}
pub fn append(value: impl Into<Value>) -> CallExpr {
call_expr!(Function::Append, value.into())
}
pub fn push_back(value: impl Into<Value>) -> CallExpr {
call_expr!(Function::PushBack, value.into())
}
pub fn push_front(value: impl Into<Value>) -> CallExpr {
call_expr!(Function::PushFront, value.into())
}