macro_rules! export_functions {
($(($FUNC:ident, $DOC:expr, $($arg:tt)*)),*) => { ... };
(single $FUNC:ident, $DOC:expr, $arg:ident,) => { ... };
(single $FUNC:ident, $DOC:expr, $($arg:ident)*) => { ... };
}Expand description
macro that exports a list of function names as:
- individual functions in an
expr_fnmodule - a single function that returns a list of all functions
Equivalent to
pub mod expr_fn {
use super::*;
/// Return encode(arg)
pub fn encode(args: Vec<Expr>) -> Expr {
super::encode().call(args)
}
...
/// Return a list of all functions in this package
pub(crate) fn functions() -> Vec<Arc<ScalarUDF>> {
vec![
encode(),
decode()
]
}Exported functions accept:
Vec<Expr>argument (single argument followed by a comma)- Variable number of
Exprarguments (zero or more arguments, must be without commas)