Use features instead of dedicated crates for base encoding, -net, and -struct libraries.
Make the original tests pass + add more tests.
Trait which en-/decodes the primitive types without headers. Trait which en-/decodes the types with headers.
dedicated unit-structs which implement the traits for the individual types
- uint type is difficult, since it needs to return a variant of all the possible subtypes (may not be ergonomic to use)
- does not seem very rust-y
- approach is also used by other crates (e.g. bincode)
- feels more rust-y
- no extra types just for serialization
- Can be done on top of previous example