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? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: