0 points

So rust finally gets reflection? In stable no less!

permalink
report
reply
0 points

Well, if the only thing you need from reflection is the name of a type, so then yes. But I wouldn’t really call this reflection since it is very limited.

permalink
report
parent
reply
0 points

Yeah, Rust can’t have proper reflection, since there’s no external runtime environment that keeps track of your state. Any such smartness either has to be compiled-in (which is how std::any and macros work) or you can implement something to keep track of this state at runtime, as if you were partially building a runtime environment.

permalink
report
parent
reply
0 points

Minor point of clarification: it can’t have runtime reflection, but in principle it could have compile time reflection.

permalink
report
parent
reply
0 points

Unfortunately, it’s not guaranteed to be the same string all the time, so it’s rather useless for anything but debugging and logging.

permalink
report
parent
reply
0 points

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

permalink
report
reply
0 points
*

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

permalink
report
parent
reply
0 points
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
});
permalink
report
parent
reply

Rust

!rust@programming.dev

Create post

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)

Community stats

  • 610

    Monthly active users

  • 244

    Posts

  • 826

    Comments