On Tuesday, 12 May 2020 at 04:02:18 UTC, Steven Schveighoffer
wrote:
In the case of serialization/deserialization, you give an
instance of a type to serialize or deserialize. Then the
library can search the symbols inside that type to see if any
has the UDA you are looking for.
In the Rust example, there is a line of code:
let p: Person = serde_json::from_str(data)?;
I'm assuming that this conversion is detected and figured out
(i.e. this is how serde "finds" the type desired). For D, it
would look something like:
auto p = serde_json.from_str!Person(data);
If you want a list of ALL symbols that have the UDA in the
application, that would require some form of runtime reflection
(like Java). D has very limited support for runtime reflection.
In D, you would use some form of registration to tell the
system about your symbols.
-Steve
Thanks for the feedback.
I've got a better idea of what is and isn't possible now.
I'll see about looking at one or two D JSON libraries to see how
they approach things. It should help shed some more light on the
subject.