macro_rules! params {
() => { ... };
(@ to_pair $ name : expr => $ value : expr) => { ... };
(@ to_pair $ name : ident) => { ... };
(@ expand $ vec : expr ;) => { ... };
(@ expand $ vec : expr ; $ name : expr => $ value : expr, $ ($ tail : tt) *) => { ... };
(@ expand $ vec : expr ; $ name : expr => $ value : expr $ (, $ tail : tt) *) => { ... };
(@ expand $ vec : expr ; $ name : ident, $ ($ tail : tt) *) => { ... };
(@ expand $ vec : expr ; $ name : ident $ (, $ tail : tt) *) => { ... };
($ i : ident, $ ($ tail : tt) *) => { ... };
($ i : expr => $ ($ tail : tt) *) => { ... };
($ i : ident) => { ... };
}
This macro is a convenient way to pass named parameters to a statement.
let foo = 42;
conn.prep_exec("SELECT :foo, :foo2x", params! {
foo,
"foo2x" => foo * 2,
});