| 102 | // Timestamp |
| 103 | |
| 104 | Status FromProto(const google::protobuf::Timestamp& pb_timestamp, Timestamp* timestamp) { |
| 105 | const auto seconds = std::chrono::seconds{pb_timestamp.seconds()}; |
| 106 | const auto nanoseconds = std::chrono::nanoseconds{pb_timestamp.nanos()}; |
| 107 | const auto duration = |
| 108 | std::chrono::duration_cast<Timestamp::duration>(seconds + nanoseconds); |
| 109 | *timestamp = Timestamp(duration); |
| 110 | return Status::OK(); |
| 111 | } |
| 112 | |
| 113 | Status ToProto(const Timestamp& timestamp, google::protobuf::Timestamp* pb_timestamp) { |
| 114 | const auto since_epoch = timestamp.time_since_epoch(); |