»Schedule // Talk
Friday, October 10
13:45–14:15
Side Stage
A Deep Dive into Serde-Driven Reflection
Do you know what code is generated when you use #[derive(Deserialize)]
? And what that has to do with API design, reflection, and ergonomics?
In this talk, we’ll explore a way to use the Serde (de)serialization crate to build an API that would otherwise be painful to use in a statically typed language like Rust.
We’ll dive into Serde’s internals from two angles: the struct
being deserialized, and the deserializer driving the process - and how they are connected by Serde’s unique trait architecture.
We’ll finish by writing our own deserializer, enabling a form of compile-time reflection and allowing us to materialize user-defined struct
s without a custom trait or a complex procedural macro.