snaggen@programming.dev to Rust@programming.dev · 10 months agoAnnouncing Rust 1.76.0blog.rust-lang.orgexternal-linkmessage-square23fedilinkarrow-up1101arrow-down10
arrow-up1101arrow-down1external-linkAnnouncing Rust 1.76.0blog.rust-lang.orgsnaggen@programming.dev to Rust@programming.dev · 10 months agomessage-square23fedilink
minus-squareλλλ@programming.devlinkfedilinkarrow-up6·edit-210 months agoDo you mind explaining? Maybe with the context of another languages equivalent?
minus-squareanlumo@feddit.delinkfedilinkEnglisharrow-up14arrow-down2·10 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·10 months agoWarning: in the first case “value” is actually a shared reference, not a value.
minus-squareGissaMittJobb@lemmy.mllinkfedilinkarrow-up2·10 months agoLooks vaguely like Stream::peek from Java, I think? There’s an equivalent method in Iterator::inspect.
minus-squareowsei@programming.devlinkfedilinkarrow-up1·edit-210 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.