| 71 | } |
| 72 | |
| 73 | Value GetTimeBreakdownPart( |
| 74 | absl::Time timestamp, absl::string_view tz, |
| 75 | const std::function<int64_t(const absl::TimeZone::CivilInfo&)>& |
| 76 | extractor_func) { |
| 77 | absl::TimeZone::CivilInfo breakdown; |
| 78 | auto status = FindTimeBreakdown(timestamp, tz, &breakdown); |
| 79 | |
| 80 | if (!status.ok()) { |
| 81 | return ErrorValue(status); |
| 82 | } |
| 83 | |
| 84 | return IntValue(extractor_func(breakdown)); |
| 85 | } |
| 86 | |
| 87 | Value GetFullYear(absl::Time timestamp, absl::string_view tz) { |
| 88 | return GetTimeBreakdownPart(timestamp, tz, |
no test coverage detected