Macro respo::memo1_call_by
source · macro_rules! memo1_call_by { ($f:ident, $cache:expr, $key:expr, $arg1:expr) => { ... }; ($f:ident, $cache:expr, $key:expr, $arg1:expr,) => { ... }; ($f:ident, $cache:expr, $key:expr, $arg1:expr, $arg2:expr) => { ... }; ($f:ident, $cache:expr, $key:expr, $arg1:expr, $arg2:expr,) => { ... }; ($f:ident, $cache:expr, $key:expr, $arg1:expr, $arg2:expr, $arg3:expr) => { ... }; ($f:ident, $cache:expr, $key:expr, $arg1:expr, $arg2:expr, $arg3:expr,) => { ... }; ($f:ident, $cache:expr, $key:expr, $arg1:expr, $arg2:expr, $arg3:expr, $arg4:expr) => { ... }; ($f:ident, $cache:expr, $key:expr, $arg1:expr, $arg2:expr, $arg3:expr, $arg4:expr,) => { ... }; ($f:ident, $cache:expr, $key:expr, $arg1:expr, $arg2:expr, $arg3:expr, $arg4:expr, $arg5:expr) => { ... }; ($f:ident, $cache:expr, $key:expr, $arg1:expr, $arg2:expr, $arg3:expr, $arg4:expr, $arg5:expr) => { ... }; }
Expand description
exteand to code that interacts with memo cache, that order of args:
ⓘ
memo1_call_by!($f, $memo_caches, $key, $args...)
for example:
ⓘ
memo1_call_by!(comp_task, memo_caches.to_owned(), task.id.to_owned(), &states.pick(&task.id), task)?
its expanding result would be like:
ⓘ
internal_memof1_call_by(
memo_caches.to_owned(),
comp_task as usize,
task.id.to_owned(),
vec![cast_into_json(states.pick(&task.id)), cast_into_json(task)],
move || comp_task(m.to_owned(), &states.pick(&task.id), task),
)