

Usually the serialization/deserialization code, I keep with the model. The part where a file or whatever comes in, I leave that to the caller to decide on. In other words, the model knows how to serialize and deserialize itself, but not where it’s being serialized to or deserialized from.
Then again, in C#, it’s usually just a couple attributes on my model, and in Rust, it’s usually just a couple derives. It’s rare I actually write much, if any, serialization logic by hand.
This is the real battle that should be fought against antisemitism. Not random symbols that people have used for decades to mean completely innocent things. Someone who would heil multiple times on public TV and openly post and share hatred on major platforms.
It’s a shame the ADL refused to call him what he is when it mattered: a nazi.