This crate provides a proc macro to generate "let bindings" automatically,
usually cloning values into an expression(usually a closure). Inspired by
crate enclose
.
bind!( ( comma_separated_list_of_var_bindings ) the_expr_that_uses_the_vars )
comma_separated_list_of_var_bindings
is in the form of
var_binding, another var_binding, ...
.
var_binding
is in the form of:
-
id
, generatinglet id = id.clone();
-
mut id
, generatinglet mut id = id.clone();
-
new_id = id
, generatinglet new_id = id.clone();
-
mut new_id = id
, generatinglet mut new_id = id.clone();
-
id = expr
, generatinglet id = expr;
-
mut id = expr
, generatinglet mut id = expr;
-
expr
, generatinglet the_only_id_in_the_expr = expr;
, e.g.bind!( (s.to_owned()) .. )
generateslet s = s.to_owned()
. -
mut expr
, generatinglet mut the_only_id_in_the_expr = expr;
e.g.bind!( (mut s.to_owned()) .. )
generateslet mut s = s.to_owned()
.