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

Rust

6031 readers
2 users here now

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

Wormhole

[email protected]

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
104
Announcing Rust 1.76.0 (blog.rust-lang.org)
submitted 9 months ago by snaggen to c/rust
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 9 points 9 months ago (1 children)

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.

[–] BatmanAoD 12 points 9 months ago (2 children)

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

[–] [email protected] 1 points 9 months ago

And compile-time reflection will probably also continue to suck due to some irreconcilable limitations of type-safe generic specialization. Oh how I would love an equivalent to C++ template parameter packs…

[–] [email protected] 0 points 9 months ago (2 children)

No, the Rust Project recently made sure that Rust can't have compile-time reflection.

[–] BatmanAoD 1 points 9 months ago

...yeah, that's really unfortunate. Part of why I said "in principle".

[–] [email protected] 1 points 9 months ago (1 children)

Can you expand on this? I'd love to read more on the subject.

[–] [email protected] -1 points 9 months ago

Here is a short summary. The compile-time reflection project was stopped, and now nobody wants to touch that subject any more due to fear of getting the wrath of the Rust project again (the person responsible for the whole thing is still part of the leadership).