| 179 | |
| 180 | template <class Sink> |
| 181 | void Write(Sink & sink, uint8_t header) const |
| 182 | { |
| 183 | using namespace feature; |
| 184 | |
| 185 | if (header & HEADER_MASK_HAS_NAME) |
| 186 | name.WriteNonEmpty(sink); |
| 187 | |
| 188 | if (header & HEADER_MASK_HAS_LAYER) |
| 189 | WriteToSink(sink, layer); |
| 190 | |
| 191 | if (header & HEADER_MASK_HAS_ADDINFO) |
| 192 | { |
| 193 | auto const headerGeomType = static_cast<HeaderGeomType>(header & HEADER_MASK_GEOMTYPE); |
| 194 | switch (headerGeomType) |
| 195 | { |
| 196 | case HeaderGeomType::Point: WriteToSink(sink, rank); break; |
| 197 | case HeaderGeomType::Line: rw::WriteNonEmpty(sink, ref); break; |
| 198 | case HeaderGeomType::Area: |
| 199 | case HeaderGeomType::PointEx: house.Write(sink); break; |
| 200 | } |
| 201 | } |
| 202 | } |
| 203 | |
| 204 | template <class TSrc> |
| 205 | void Read(TSrc & src, uint8_t header) |
nothing calls this directly
no test coverage detected