There is a general mechanism in Rust that allows language users to add their own sugar. It’s called macros 😉
macro_rules! keep {
(let $id:ident = $expr:expr => $($tt:tt)+) => {
let $id = $expr;
let $id = $id$($tt)+;
}
}
fn main() {
keep!{ let path = std::env::current_dir().unwrap() => .as_path() };
println!("{path:?}");
}
You can remove let
from the macro’s fragment specifier and invocation.
correct
incorrect
N/A. the macro above is trivial.
fiction