diff --git a/temporal_capi/bindings/c/TimeZone.h b/temporal_capi/bindings/c/TimeZone.h index 170e51300..328ea422f 100644 --- a/temporal_capi/bindings/c/TimeZone.h +++ b/temporal_capi/bindings/c/TimeZone.h @@ -27,6 +27,8 @@ temporal_rs_TimeZone_try_from_str_result temporal_rs_TimeZone_try_from_str(Diplo void temporal_rs_TimeZone_identifier(const TimeZone* self, DiplomatWrite* write); +TimeZone* temporal_rs_TimeZone_utc(void); + TimeZone* temporal_rs_TimeZone_clone(const TimeZone* self); bool temporal_rs_TimeZone_is_valid(const TimeZone* self); diff --git a/temporal_capi/bindings/cpp/temporal_rs/TimeZone.d.hpp b/temporal_capi/bindings/cpp/temporal_rs/TimeZone.d.hpp index b6533d6a9..fbacd2de5 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/TimeZone.d.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/TimeZone.d.hpp @@ -38,6 +38,8 @@ class TimeZone { template inline void identifier_write(W& writeable_output) const; + inline static std::unique_ptr utc(); + inline std::unique_ptr clone() const; inline bool is_valid() const; diff --git a/temporal_capi/bindings/cpp/temporal_rs/TimeZone.hpp b/temporal_capi/bindings/cpp/temporal_rs/TimeZone.hpp index 5dd02f17e..48547505f 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/TimeZone.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/TimeZone.hpp @@ -30,6 +30,8 @@ namespace capi { void temporal_rs_TimeZone_identifier(const temporal_rs::capi::TimeZone* self, diplomat::capi::DiplomatWrite* write); + temporal_rs::capi::TimeZone* temporal_rs_TimeZone_utc(void); + temporal_rs::capi::TimeZone* temporal_rs_TimeZone_clone(const temporal_rs::capi::TimeZone* self); bool temporal_rs_TimeZone_is_valid(const temporal_rs::capi::TimeZone* self); @@ -69,6 +71,11 @@ inline void temporal_rs::TimeZone::identifier_write(W& writeable) const { &write); } +inline std::unique_ptr temporal_rs::TimeZone::utc() { + auto result = temporal_rs::capi::temporal_rs_TimeZone_utc(); + return std::unique_ptr(temporal_rs::TimeZone::FromFFI(result)); +} + inline std::unique_ptr temporal_rs::TimeZone::clone() const { auto result = temporal_rs::capi::temporal_rs_TimeZone_clone(this->AsFFI()); return std::unique_ptr(temporal_rs::TimeZone::FromFFI(result)); diff --git a/temporal_capi/src/time_zone.rs b/temporal_capi/src/time_zone.rs index a62f2512b..f49b866b7 100644 --- a/temporal_capi/src/time_zone.rs +++ b/temporal_capi/src/time_zone.rs @@ -44,6 +44,10 @@ pub mod ffi { let _ = write.write_str(&s); } + pub fn utc() -> Box { + Box::new(Self(temporal_rs::TimeZone::IanaIdentifier("UTC".into()))) + } + #[allow(clippy::should_implement_trait)] pub fn clone(&self) -> Box { Box::new(TimeZone(self.0.clone()))