101
Announcing Rust 1.76.0 (blog.rust-lang.org)
you are viewing a single comment's thread
view the rest of the comments
[-] anlumo@feddit.de 17 points 8 months ago

Oh, inspect has finally arrived! That will help a ton with debug logging.

[-] lambda@programming.dev 7 points 7 months ago* (last edited 7 months ago)

Do you mind explaining? Maybe with the context of another languages equivalent?

[-] anlumo@feddit.de 13 points 7 months ago
let 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
});
[-] lambda@programming.dev 1 points 7 months ago

Elegant. Thanks!

[-] xav@programming.dev 1 points 7 months ago

Warning: in the first case "value" is actually a shared reference, not a value.

[-] GissaMittJobb@lemmy.ml 2 points 7 months ago

Looks vaguely like Stream::peek from Java, I think? There's an equivalent method in Iterator::inspect.

[-] owsei@programming.dev 1 points 7 months ago* (last edited 7 months ago)

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.

this post was submitted on 08 Feb 2024
101 points (100.0% liked)

Rust

5832 readers
9 users here now

Welcome to the Rust community! This is a place to discuss about the Rust programming language.

Wormhole

!performance@programming.dev

Credits

  • The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)

founded 1 year ago
MODERATORS