std::unique_ptr readDate()

in hessian2/basic_codec/date_codec.cc [8:26]


std::unique_ptr<T> readDate(ReaderPtr &reader) {
  auto out = std::make_unique<T>();
  uint8_t code = reader->read<uint8_t>().second;
  switch (code) {
    case 0x4b:
      if (reader->byteAvailable() < 4) {
        return nullptr;
      }
      return std::make_unique<T>(std::chrono::duration_cast<T>(
          std::chrono::minutes(reader->readBE<int32_t>().second)));
    case 0x4a:
      if (reader->byteAvailable() < 8) {
        return nullptr;
      }
      return std::make_unique<T>(std::chrono::duration_cast<T>(
          std::chrono::milliseconds(reader->readBE<int64_t>().second)));
  }
  return nullptr;
}