snaggen@programming.dev to Rust@programming.dev · 9 months agoAnnouncing Rust 1.76.0blog.rust-lang.orgexternal-linkmessage-square23fedilinkarrow-up199arrow-down10cross-posted to: rust@lemmit.online
arrow-up199arrow-down1external-linkAnnouncing Rust 1.76.0blog.rust-lang.orgsnaggen@programming.dev to Rust@programming.dev · 9 months agomessage-square23fedilinkcross-posted to: rust@lemmit.online
minus-squareλλλ@programming.devlinkfedilinkarrow-up6·edit-29 months agoDo you mind explaining? Maybe with the context of another languages equivalent?
minus-squareanlumo@feddit.delinkfedilinkEnglisharrow-up14arrow-down2·9 months agolet bar: Result<T, E> = ...; let foo = bar.inspect(|value| log::debug("{}", value)); is equivalent to let bar: Result<T, E> = ...; let foo = bar.map(|value| { log::debug("{}", value); value });
minus-squarexav@programming.devlinkfedilinkarrow-up1·9 months agoWarning: in the first case “value” is actually a shared reference, not a value.
minus-squareGissaMittJobb@lemmy.mllinkfedilinkarrow-up2·9 months agoLooks vaguely like Stream::peek from Java, I think? There’s an equivalent method in Iterator::inspect.
minus-squareowsei@programming.devlinkfedilinkarrow-up1·edit-29 months agoit’s just a way to use map with a reference instead of the value, by what I understood. could be usefull for logging values in a Result so you can see it. However I think you can already do that by just mapping and returning the variable.
Do you mind explaining? Maybe with the context of another languages equivalent?
is equivalent to
Elegant. Thanks!
Warning: in the first case “value” is actually a shared reference, not a value.
Looks vaguely like
Stream::peek
from Java, I think? There’s an equivalent method inIterator::inspect
.it’s just a way to use map with a reference instead of the value, by what I understood.
could be usefull for logging values in a Result so you can see it. However I think you can already do that by just mapping and returning the variable.