C++-style IO with streams
a wrapper brings `<<` and `>>` operator to rust's writer/reader/stream like what C++ did
C++ streams in rust