We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I propose to add closure-level inline constants. For example the following code
let closeure_uuid = Uuid::new_v4(); let lambda = || { println!("Execution UUID {}",Uuid::new_v4()); println!("Closure UUID {}",closeure_uuid); }; lambda (); lambda ();
It could be rewritten as
let lambda = || { println!("Execution UUID {}",Uuid::new_v4()); println!("Closure UUID {}",cc{Uuid::new_v4())}); }; lambda (); lambda ();
with a new cc keyword similar to constant. This would have similar advantages as inline_const rust-lang/rust#104087. Use cases:
Finer control on what is getting moved inside the lambda. For example
cc{very_larnge_vector.iter().min()}
or
cc{struct.field.other_filed}
More ergonomic dealing with ref counting. Example:
cc{button.clone()}.enable();
Those expressions should be executed when the closure is created and dropped when the closure is dropped.
The text was updated successfully, but these errors were encountered:
I don't understand the proposal tbh, is this just an abbreviated syntax for const {}?
const {}
Sorry, something went wrong.
this is like one of the capturing alternatives proposed in #3680 (comment).
as explained in #3680 (comment) it is very hard to grasp the scope/lifetime of the cc {}'ed expression for newcomers.
cc {}
ah, I see. thank you.
No branches or pull requests
I propose to add closure-level inline constants. For example the following code
It could be rewritten as
with a new cc keyword similar to constant. This would have similar advantages as inline_const rust-lang/rust#104087. Use cases:
Finer control on what is getting moved inside the lambda. For example
or
More ergonomic dealing with ref counting. Example:
Those expressions should be executed when the closure is created and dropped when the closure is dropped.
The text was updated successfully, but these errors were encountered: