MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / EncodeDurationToJson

Function EncodeDurationToJson

internal/time.cc:152–172  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

150}
151
152absl::StatusOr<std::string> EncodeDurationToJson(absl::Duration duration) {
153 // Adapted from protobuf time_util.
154 CEL_RETURN_IF_ERROR(ValidateDuration(duration));
155 std::string result;
156 int64_t seconds = absl::IDivDuration(duration, absl::Seconds(1), &duration);
157 int64_t nanos = absl::IDivDuration(duration, absl::Nanoseconds(1), &duration);
158
159 if (seconds < 0 || nanos < 0) {
160 result = "-";
161 seconds = -seconds;
162 nanos = -nanos;
163 }
164
165 absl::StrAppend(&result, seconds);
166 if (nanos != 0) {
167 absl::StrAppend(&result, ".", FormatNanos(nanos));
168 }
169
170 absl::StrAppend(&result, "s");
171 return result;
172}
173
174absl::StatusOr<std::string> EncodeTimestampToJson(absl::Time timestamp) {
175 // Adapted from protobuf time_util.

Callers 2

TESTFunction · 0.85

Calls 2

ValidateDurationFunction · 0.85
FormatNanosFunction · 0.85

Tested by 1

TESTFunction · 0.68