The introduction of the new tzdb compiler with a more direct port from NodaTime caused a bit of code duplication between DateTimeZoneWriter and BinaryWriter as well as DateTimeZoneReader and BinaryReader.
Ideally all primitives (int, string, varInt, etc) are handled in BinaryWriter/BinaryReader and DateTimeZoneWriter/DateTimeZoneReader use those classes to add use-case specific writing/reading.
Write now both co-exist and use potentially colliding mechanisms to read/write the same primitives.
The introduction of the new tzdb compiler with a more direct port from NodaTime caused a bit of code duplication between DateTimeZoneWriter and BinaryWriter as well as DateTimeZoneReader and BinaryReader.
Ideally all primitives (int, string, varInt, etc) are handled in BinaryWriter/BinaryReader and DateTimeZoneWriter/DateTimeZoneReader use those classes to add use-case specific writing/reading.
Write now both co-exist and use potentially colliding mechanisms to read/write the same primitives.