aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/protobuf/interop/cast.cpp
blob: c4cd59b417eb76682b973af48633455f163e40df (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <library/cpp/protobuf/interop/cast.h>

#include <google/protobuf/duration.pb.h>
#include <google/protobuf/timestamp.pb.h>
#include <google/protobuf/util/time_util.h>

namespace NProtoInterop {
    google::protobuf::Duration CastToProto(TDuration duration) {
        return google::protobuf::util::TimeUtil::MicrosecondsToDuration(duration.MicroSeconds());
    }

    google::protobuf::Timestamp CastToProto(TInstant instant) {
        return google::protobuf::util::TimeUtil::MicrosecondsToTimestamp(instant.MicroSeconds());
    }

    TDuration CastFromProto(const google::protobuf::Duration& duration) {
        return TDuration::MicroSeconds(google::protobuf::util::TimeUtil::DurationToMicroseconds(duration));
    }

    TInstant CastFromProto(const google::protobuf::Timestamp& timestamp) {
        return TInstant::MicroSeconds(google::protobuf::util::TimeUtil::TimestampToMicroseconds(timestamp));
    }
}