Serde deserialization, visitor - how it works

Hello,

I am having a hard time trying to understand how the serde deserialization works, specifically, I cannot figure out in my mind of how the visitors are used combined with the code that is generated from the Deserialize macro (I can display the generated code in RustRover) and how the input is processed, then there is an additional interface, MapAccess, that can be used to keep track of state during the deserialization.

Can you please recommend me some resources? If did search for articles and anything I found goes above my head, including the official documentation.

Thanks

I don't know if you're aware of serde.rs, but in case you aren't: it's a site that explains the data model used by serde, and explains things like how to write a manual De/Serialize impl for structs.
If you need to deserialize an enum, check out this thread I opened on that.