From 9c0c84a9f585130baa9122299731f8eafc2e5939 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Thu, 1 May 2025 13:18:11 -0700 Subject: [PATCH 1/3] Add string conversion methods to types --- temporal_capi/src/duration.rs | 20 ++++++++++++++++++++ temporal_capi/src/instant.rs | 19 +++++++++++++++++++ temporal_capi/src/plain_date.rs | 21 +++++++++++++++++++++ temporal_capi/src/plain_date_time.rs | 19 +++++++++++++++++++ temporal_capi/src/plain_month_day.rs | 19 +++++++++++++++++++ temporal_capi/src/plain_time.rs | 21 ++++++++++++++++++++- temporal_capi/src/plain_year_month.rs | 20 ++++++++++++++++++++ 7 files changed, 138 insertions(+), 1 deletion(-) diff --git a/temporal_capi/src/duration.rs b/temporal_capi/src/duration.rs index 35b1faa8a..805211767 100644 --- a/temporal_capi/src/duration.rs +++ b/temporal_capi/src/duration.rs @@ -7,7 +7,10 @@ pub mod ffi { use crate::error::ffi::TemporalError; use alloc::boxed::Box; use diplomat_runtime::DiplomatOption; + use diplomat_runtime::{DiplomatStr, DiplomatStr16}; use num_traits::FromPrimitive; + use core::str::{self, FromStr}; + use alloc::string::String; #[diplomat::opaque] pub struct Duration(pub(crate) temporal_rs::Duration); @@ -149,6 +152,23 @@ pub mod ffi { .map(|x| Box::new(Duration(x))) .map_err(Into::into) } + + pub fn from_utf8(s: &DiplomatStr) -> Result, TemporalError> { + // TODO(#275) This should not need to validate + let s = str::from_utf8(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::Duration::from_str(s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + + pub fn from_utf16(s: &DiplomatStr16) -> Result, TemporalError> { + // TODO(#275) This should not need to convert + let s = String::from_utf16(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::Duration::from_str(&s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + pub fn is_time_within_range(&self) -> bool { self.0.is_time_within_range() } diff --git a/temporal_capi/src/instant.rs b/temporal_capi/src/instant.rs index 3ad61fb7f..638d314e4 100644 --- a/temporal_capi/src/instant.rs +++ b/temporal_capi/src/instant.rs @@ -6,6 +6,9 @@ pub mod ffi { use crate::error::ffi::TemporalError; use crate::options::ffi::{DifferenceSettings, RoundingOptions}; use alloc::boxed::Box; + use diplomat_runtime::{DiplomatStr, DiplomatStr16}; + use core::str::{self, FromStr}; + use alloc::string::String; #[diplomat::opaque] pub struct Instant(pub temporal_rs::Instant); @@ -41,6 +44,22 @@ pub mod ffi { .map_err(Into::into) } + pub fn from_utf8(s: &DiplomatStr) -> Result, TemporalError> { + // TODO(#275) This should not need to validate + let s = str::from_utf8(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::Instant::from_str(s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + + pub fn from_utf16(s: &DiplomatStr16) -> Result, TemporalError> { + // TODO(#275) This should not need to convert + let s = String::from_utf16(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::Instant::from_str(&s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + pub fn add(&self, duration: &Duration) -> Result, TemporalError> { self.0 .add(duration.0) diff --git a/temporal_capi/src/plain_date.rs b/temporal_capi/src/plain_date.rs index 1d1261950..38cd66d8a 100644 --- a/temporal_capi/src/plain_date.rs +++ b/temporal_capi/src/plain_date.rs @@ -16,7 +16,11 @@ pub mod ffi { use crate::plain_year_month::ffi::PlainYearMonth; use alloc::boxed::Box; use core::fmt::Write; + use alloc::string::String; use diplomat_runtime::{DiplomatOption, DiplomatStrSlice, DiplomatWrite}; + use diplomat_runtime::{DiplomatStr, DiplomatStr16}; + + use core::str::{self, FromStr}; #[diplomat::opaque] pub struct PlainDate(pub(crate) temporal_rs::PlainDate); @@ -79,6 +83,7 @@ pub mod ffi { .map(|x| Box::new(PlainDate(x))) .map_err(Into::into) } + pub fn with( &self, partial: PartialDate, @@ -97,6 +102,22 @@ pub mod ffi { .map_err(Into::into) } + pub fn from_utf8(s: &DiplomatStr) -> Result, TemporalError> { + // TODO(#275) This should not need to validate + let s = str::from_utf8(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainDate::from_str(s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + + pub fn from_utf16(s: &DiplomatStr16) -> Result, TemporalError> { + // TODO(#275) This should not need to convert + let s = String::from_utf16(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainDate::from_str(&s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + pub fn iso_year(&self) -> i32 { self.0.iso_year() } diff --git a/temporal_capi/src/plain_date_time.rs b/temporal_capi/src/plain_date_time.rs index 9b90822dc..cf9684c8b 100644 --- a/temporal_capi/src/plain_date_time.rs +++ b/temporal_capi/src/plain_date_time.rs @@ -16,7 +16,10 @@ pub mod ffi { use crate::plain_date::ffi::{PartialDate, PlainDate}; use crate::plain_time::ffi::{PartialTime, PlainTime}; use core::fmt::Write; + use alloc::string::String; use diplomat_runtime::DiplomatWrite; + use diplomat_runtime::{DiplomatStr, DiplomatStr16}; + use core::str::{self, FromStr}; #[diplomat::opaque] pub struct PlainDateTime(pub(crate) temporal_rs::PlainDateTime); @@ -115,6 +118,22 @@ pub mod ffi { .map_err(Into::into) } + pub fn from_utf8(s: &DiplomatStr) -> Result, TemporalError> { + // TODO(#275) This should not need to validate + let s = str::from_utf8(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainDateTime::from_str(s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + + pub fn from_utf16(s: &DiplomatStr16) -> Result, TemporalError> { + // TODO(#275) This should not need to convert + let s = String::from_utf16(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainDateTime::from_str(&s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + pub fn iso_year(&self) -> i32 { self.0.iso_year() } diff --git a/temporal_capi/src/plain_month_day.rs b/temporal_capi/src/plain_month_day.rs index 466dea1f6..b98a79dd9 100644 --- a/temporal_capi/src/plain_month_day.rs +++ b/temporal_capi/src/plain_month_day.rs @@ -11,6 +11,9 @@ pub mod ffi { use core::fmt::Write; use diplomat_runtime::DiplomatWrite; + use diplomat_runtime::{DiplomatStr, DiplomatStr16}; + use core::str::{self, FromStr}; + use alloc::string::String; #[diplomat::opaque] pub struct PlainMonthDay(pub(crate) temporal_rs::PlainMonthDay); @@ -45,6 +48,22 @@ pub mod ffi { .map_err(Into::into) } + pub fn from_utf8(s: &DiplomatStr) -> Result, TemporalError> { + // TODO(#275) This should not need to validate + let s = str::from_utf8(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainMonthDay::from_str(s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + + pub fn from_utf16(s: &DiplomatStr16) -> Result, TemporalError> { + // TODO(#275) This should not need to convert + let s = String::from_utf16(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainMonthDay::from_str(&s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + pub fn iso_year(&self) -> i32 { self.0.iso_year() } diff --git a/temporal_capi/src/plain_time.rs b/temporal_capi/src/plain_time.rs index 37e416444..c2a678c6e 100644 --- a/temporal_capi/src/plain_time.rs +++ b/temporal_capi/src/plain_time.rs @@ -9,8 +9,11 @@ pub mod ffi { use crate::options::ffi::{ ArithmeticOverflow, DifferenceSettings, RoundingMode, ToStringRoundingOptions, Unit, }; - use core::fmt::Write; use diplomat_runtime::{DiplomatOption, DiplomatWrite}; + use diplomat_runtime::{DiplomatStr, DiplomatStr16}; + use core::str::{self, FromStr}; + use core::fmt::Write; + use alloc::string::String; #[diplomat::opaque] pub struct PlainTime(pub(crate) temporal_rs::PlainTime); @@ -76,6 +79,22 @@ pub mod ffi { .map_err(Into::into) } + pub fn from_utf8(s: &DiplomatStr) -> Result, TemporalError> { + // TODO(#275) This should not need to validate + let s = str::from_utf8(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainTime::from_str(s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + + pub fn from_utf16(s: &DiplomatStr16) -> Result, TemporalError> { + // TODO(#275) This should not need to convert + let s = String::from_utf16(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainTime::from_str(&s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + pub fn hour(&self) -> u8 { self.0.hour() } diff --git a/temporal_capi/src/plain_year_month.rs b/temporal_capi/src/plain_year_month.rs index d9a2661dd..04d33ef41 100644 --- a/temporal_capi/src/plain_year_month.rs +++ b/temporal_capi/src/plain_year_month.rs @@ -11,6 +11,10 @@ pub mod ffi { use crate::plain_date::ffi::{PartialDate, PlainDate}; use core::fmt::Write; use diplomat_runtime::DiplomatWrite; + use diplomat_runtime::{DiplomatStr, DiplomatStr16}; + use alloc::string::String; + + use core::str::{self, FromStr}; #[diplomat::opaque] pub struct PlainYearMonth(pub(crate) temporal_rs::PlainYearMonth); @@ -45,6 +49,22 @@ pub mod ffi { .map_err(Into::into) } + pub fn from_utf8(s: &DiplomatStr) -> Result, TemporalError> { + // TODO(#275) This should not need to validate + let s = str::from_utf8(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainYearMonth::from_str(s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + + pub fn from_utf16(s: &DiplomatStr16) -> Result, TemporalError> { + // TODO(#275) This should not need to convert + let s = String::from_utf16(s).map_err(|_| temporal_rs::TemporalError::range())?; + temporal_rs::PlainYearMonth::from_str(&s) + .map(|c| Box::new(Self(c))) + .map_err(Into::into) + } + pub fn iso_year(&self) -> i32 { self.0.iso_year() } From 2abf33ee68ee9d789c00e6d548b4d09f82d264f0 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Thu, 1 May 2025 13:23:03 -0700 Subject: [PATCH 2/3] regen --- .../bindings/cpp/temporal_rs/Duration.d.hpp | 4 ++++ .../bindings/cpp/temporal_rs/Duration.hpp | 16 ++++++++++++++++ .../bindings/cpp/temporal_rs/Instant.d.hpp | 4 ++++ .../bindings/cpp/temporal_rs/Instant.hpp | 16 ++++++++++++++++ .../bindings/cpp/temporal_rs/PlainDate.d.hpp | 4 ++++ .../bindings/cpp/temporal_rs/PlainDate.hpp | 16 ++++++++++++++++ .../bindings/cpp/temporal_rs/PlainDateTime.d.hpp | 4 ++++ .../bindings/cpp/temporal_rs/PlainDateTime.hpp | 16 ++++++++++++++++ .../bindings/cpp/temporal_rs/PlainMonthDay.d.hpp | 4 ++++ .../bindings/cpp/temporal_rs/PlainMonthDay.hpp | 16 ++++++++++++++++ .../bindings/cpp/temporal_rs/PlainTime.d.hpp | 4 ++++ .../bindings/cpp/temporal_rs/PlainTime.hpp | 16 ++++++++++++++++ .../cpp/temporal_rs/PlainYearMonth.d.hpp | 4 ++++ .../bindings/cpp/temporal_rs/PlainYearMonth.hpp | 16 ++++++++++++++++ 14 files changed, 140 insertions(+) diff --git a/temporal_capi/bindings/cpp/temporal_rs/Duration.d.hpp b/temporal_capi/bindings/cpp/temporal_rs/Duration.d.hpp index 7a76c0db4..256d93088 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/Duration.d.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/Duration.d.hpp @@ -39,6 +39,10 @@ class Duration { inline static diplomat::result, temporal_rs::TemporalError> from_partial_duration(temporal_rs::PartialDuration partial); + inline static diplomat::result, temporal_rs::TemporalError> from_utf8(std::string_view s); + + inline static diplomat::result, temporal_rs::TemporalError> from_utf16(std::u16string_view s); + inline bool is_time_within_range() const; inline const temporal_rs::TimeDuration& time() const; diff --git a/temporal_capi/bindings/cpp/temporal_rs/Duration.hpp b/temporal_capi/bindings/cpp/temporal_rs/Duration.hpp index b41efb0c3..1e9339402 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/Duration.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/Duration.hpp @@ -31,6 +31,12 @@ namespace capi { typedef struct temporal_rs_Duration_from_partial_duration_result {union {temporal_rs::capi::Duration* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_Duration_from_partial_duration_result; temporal_rs_Duration_from_partial_duration_result temporal_rs_Duration_from_partial_duration(temporal_rs::capi::PartialDuration partial); + typedef struct temporal_rs_Duration_from_utf8_result {union {temporal_rs::capi::Duration* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_Duration_from_utf8_result; + temporal_rs_Duration_from_utf8_result temporal_rs_Duration_from_utf8(diplomat::capi::DiplomatStringView s); + + typedef struct temporal_rs_Duration_from_utf16_result {union {temporal_rs::capi::Duration* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_Duration_from_utf16_result; + temporal_rs_Duration_from_utf16_result temporal_rs_Duration_from_utf16(diplomat::capi::DiplomatString16View s); + bool temporal_rs_Duration_is_time_within_range(const temporal_rs::capi::Duration* self); const temporal_rs::capi::TimeDuration* temporal_rs_Duration_time(const temporal_rs::capi::Duration* self); @@ -105,6 +111,16 @@ inline diplomat::result, temporal_rs::Tem return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::Duration::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); } +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::Duration::from_utf8(std::string_view s) { + auto result = temporal_rs::capi::temporal_rs_Duration_from_utf8({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::Duration::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::Duration::from_utf16(std::u16string_view s) { + auto result = temporal_rs::capi::temporal_rs_Duration_from_utf16({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::Duration::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + inline bool temporal_rs::Duration::is_time_within_range() const { auto result = temporal_rs::capi::temporal_rs_Duration_is_time_within_range(this->AsFFI()); return result; diff --git a/temporal_capi/bindings/cpp/temporal_rs/Instant.d.hpp b/temporal_capi/bindings/cpp/temporal_rs/Instant.d.hpp index 247e26515..4bd51c6c9 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/Instant.d.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/Instant.d.hpp @@ -38,6 +38,10 @@ class Instant { inline static diplomat::result, temporal_rs::TemporalError> from_epoch_milliseconds(int64_t epoch_milliseconds); + inline static diplomat::result, temporal_rs::TemporalError> from_utf8(std::string_view s); + + inline static diplomat::result, temporal_rs::TemporalError> from_utf16(std::u16string_view s); + inline diplomat::result, temporal_rs::TemporalError> add(const temporal_rs::Duration& duration) const; inline diplomat::result, temporal_rs::TemporalError> add_time_duration(const temporal_rs::TimeDuration& duration) const; diff --git a/temporal_capi/bindings/cpp/temporal_rs/Instant.hpp b/temporal_capi/bindings/cpp/temporal_rs/Instant.hpp index eb1dbaadb..69af50a26 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/Instant.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/Instant.hpp @@ -29,6 +29,12 @@ namespace capi { typedef struct temporal_rs_Instant_from_epoch_milliseconds_result {union {temporal_rs::capi::Instant* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_Instant_from_epoch_milliseconds_result; temporal_rs_Instant_from_epoch_milliseconds_result temporal_rs_Instant_from_epoch_milliseconds(int64_t epoch_milliseconds); + typedef struct temporal_rs_Instant_from_utf8_result {union {temporal_rs::capi::Instant* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_Instant_from_utf8_result; + temporal_rs_Instant_from_utf8_result temporal_rs_Instant_from_utf8(diplomat::capi::DiplomatStringView s); + + typedef struct temporal_rs_Instant_from_utf16_result {union {temporal_rs::capi::Instant* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_Instant_from_utf16_result; + temporal_rs_Instant_from_utf16_result temporal_rs_Instant_from_utf16(diplomat::capi::DiplomatString16View s); + typedef struct temporal_rs_Instant_add_result {union {temporal_rs::capi::Instant* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_Instant_add_result; temporal_rs_Instant_add_result temporal_rs_Instant_add(const temporal_rs::capi::Instant* self, const temporal_rs::capi::Duration* duration); @@ -71,6 +77,16 @@ inline diplomat::result, temporal_rs::Temp return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::Instant::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); } +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::Instant::from_utf8(std::string_view s) { + auto result = temporal_rs::capi::temporal_rs_Instant_from_utf8({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::Instant::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::Instant::from_utf16(std::u16string_view s) { + auto result = temporal_rs::capi::temporal_rs_Instant_from_utf16({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::Instant::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + inline diplomat::result, temporal_rs::TemporalError> temporal_rs::Instant::add(const temporal_rs::Duration& duration) const { auto result = temporal_rs::capi::temporal_rs_Instant_add(this->AsFFI(), duration.AsFFI()); diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainDate.d.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainDate.d.hpp index 3d43a6e7b..58c66d3f3 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainDate.d.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainDate.d.hpp @@ -55,6 +55,10 @@ class PlainDate { inline diplomat::result, temporal_rs::TemporalError> with_calendar(const temporal_rs::Calendar& calendar) const; + inline static diplomat::result, temporal_rs::TemporalError> from_utf8(std::string_view s); + + inline static diplomat::result, temporal_rs::TemporalError> from_utf16(std::u16string_view s); + inline int32_t iso_year() const; inline uint8_t iso_month() const; diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainDate.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainDate.hpp index 83b329fb7..b913fc06a 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainDate.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainDate.hpp @@ -46,6 +46,12 @@ namespace capi { typedef struct temporal_rs_PlainDate_with_calendar_result {union {temporal_rs::capi::PlainDate* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainDate_with_calendar_result; temporal_rs_PlainDate_with_calendar_result temporal_rs_PlainDate_with_calendar(const temporal_rs::capi::PlainDate* self, const temporal_rs::capi::Calendar* calendar); + typedef struct temporal_rs_PlainDate_from_utf8_result {union {temporal_rs::capi::PlainDate* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainDate_from_utf8_result; + temporal_rs_PlainDate_from_utf8_result temporal_rs_PlainDate_from_utf8(diplomat::capi::DiplomatStringView s); + + typedef struct temporal_rs_PlainDate_from_utf16_result {union {temporal_rs::capi::PlainDate* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainDate_from_utf16_result; + temporal_rs_PlainDate_from_utf16_result temporal_rs_PlainDate_from_utf16(diplomat::capi::DiplomatString16View s); + int32_t temporal_rs_PlainDate_iso_year(const temporal_rs::capi::PlainDate* self); uint8_t temporal_rs_PlainDate_iso_month(const temporal_rs::capi::PlainDate* self); @@ -164,6 +170,16 @@ inline diplomat::result, temporal_rs::Te return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainDate::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); } +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainDate::from_utf8(std::string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainDate_from_utf8({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainDate::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainDate::from_utf16(std::u16string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainDate_from_utf16({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainDate::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + inline int32_t temporal_rs::PlainDate::iso_year() const { auto result = temporal_rs::capi::temporal_rs_PlainDate_iso_year(this->AsFFI()); return result; diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainDateTime.d.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainDateTime.d.hpp index 75e1e7735..0a393a7c4 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainDateTime.d.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainDateTime.d.hpp @@ -53,6 +53,10 @@ class PlainDateTime { inline diplomat::result, temporal_rs::TemporalError> with_calendar(const temporal_rs::Calendar& calendar) const; + inline static diplomat::result, temporal_rs::TemporalError> from_utf8(std::string_view s); + + inline static diplomat::result, temporal_rs::TemporalError> from_utf16(std::u16string_view s); + inline int32_t iso_year() const; inline uint8_t iso_month() const; diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainDateTime.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainDateTime.hpp index b1641b2d1..ca01fea63 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainDateTime.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainDateTime.hpp @@ -46,6 +46,12 @@ namespace capi { typedef struct temporal_rs_PlainDateTime_with_calendar_result {union {temporal_rs::capi::PlainDateTime* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainDateTime_with_calendar_result; temporal_rs_PlainDateTime_with_calendar_result temporal_rs_PlainDateTime_with_calendar(const temporal_rs::capi::PlainDateTime* self, const temporal_rs::capi::Calendar* calendar); + typedef struct temporal_rs_PlainDateTime_from_utf8_result {union {temporal_rs::capi::PlainDateTime* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainDateTime_from_utf8_result; + temporal_rs_PlainDateTime_from_utf8_result temporal_rs_PlainDateTime_from_utf8(diplomat::capi::DiplomatStringView s); + + typedef struct temporal_rs_PlainDateTime_from_utf16_result {union {temporal_rs::capi::PlainDateTime* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainDateTime_from_utf16_result; + temporal_rs_PlainDateTime_from_utf16_result temporal_rs_PlainDateTime_from_utf16(diplomat::capi::DiplomatString16View s); + int32_t temporal_rs_PlainDateTime_iso_year(const temporal_rs::capi::PlainDateTime* self); uint8_t temporal_rs_PlainDateTime_iso_month(const temporal_rs::capi::PlainDateTime* self); @@ -184,6 +190,16 @@ inline diplomat::result, temporal_rs return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainDateTime::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); } +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainDateTime::from_utf8(std::string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainDateTime_from_utf8({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainDateTime::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainDateTime::from_utf16(std::u16string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainDateTime_from_utf16({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainDateTime::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + inline int32_t temporal_rs::PlainDateTime::iso_year() const { auto result = temporal_rs::capi::temporal_rs_PlainDateTime_iso_year(this->AsFFI()); return result; diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainMonthDay.d.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainMonthDay.d.hpp index ed40a0375..0d42fcebc 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainMonthDay.d.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainMonthDay.d.hpp @@ -37,6 +37,10 @@ class PlainMonthDay { inline diplomat::result, temporal_rs::TemporalError> with(temporal_rs::PartialDate partial, temporal_rs::ArithmeticOverflow overflow) const; + inline static diplomat::result, temporal_rs::TemporalError> from_utf8(std::string_view s); + + inline static diplomat::result, temporal_rs::TemporalError> from_utf16(std::u16string_view s); + inline int32_t iso_year() const; inline uint8_t iso_month() const; diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainMonthDay.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainMonthDay.hpp index 239fa3649..dae29131e 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainMonthDay.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainMonthDay.hpp @@ -28,6 +28,12 @@ namespace capi { typedef struct temporal_rs_PlainMonthDay_with_result {union {temporal_rs::capi::PlainMonthDay* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainMonthDay_with_result; temporal_rs_PlainMonthDay_with_result temporal_rs_PlainMonthDay_with(const temporal_rs::capi::PlainMonthDay* self, temporal_rs::capi::PartialDate partial, temporal_rs::capi::ArithmeticOverflow overflow); + typedef struct temporal_rs_PlainMonthDay_from_utf8_result {union {temporal_rs::capi::PlainMonthDay* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainMonthDay_from_utf8_result; + temporal_rs_PlainMonthDay_from_utf8_result temporal_rs_PlainMonthDay_from_utf8(diplomat::capi::DiplomatStringView s); + + typedef struct temporal_rs_PlainMonthDay_from_utf16_result {union {temporal_rs::capi::PlainMonthDay* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainMonthDay_from_utf16_result; + temporal_rs_PlainMonthDay_from_utf16_result temporal_rs_PlainMonthDay_from_utf16(diplomat::capi::DiplomatString16View s); + int32_t temporal_rs_PlainMonthDay_iso_year(const temporal_rs::capi::PlainMonthDay* self); uint8_t temporal_rs_PlainMonthDay_iso_month(const temporal_rs::capi::PlainMonthDay* self); @@ -64,6 +70,16 @@ inline diplomat::result, temporal_rs return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainMonthDay::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); } +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainMonthDay::from_utf8(std::string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainMonthDay_from_utf8({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainMonthDay::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainMonthDay::from_utf16(std::u16string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainMonthDay_from_utf16({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainMonthDay::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + inline int32_t temporal_rs::PlainMonthDay::iso_year() const { auto result = temporal_rs::capi::temporal_rs_PlainMonthDay_iso_year(this->AsFFI()); return result; diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainTime.d.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainTime.d.hpp index 312f22f57..f2683e164 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainTime.d.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainTime.d.hpp @@ -45,6 +45,10 @@ class PlainTime { inline diplomat::result, temporal_rs::TemporalError> with(temporal_rs::PartialTime partial, std::optional overflow) const; + inline static diplomat::result, temporal_rs::TemporalError> from_utf8(std::string_view s); + + inline static diplomat::result, temporal_rs::TemporalError> from_utf16(std::u16string_view s); + inline uint8_t hour() const; inline uint8_t minute() const; diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainTime.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainTime.hpp index 50609376b..5977c81f4 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainTime.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainTime.hpp @@ -38,6 +38,12 @@ namespace capi { typedef struct temporal_rs_PlainTime_with_result {union {temporal_rs::capi::PlainTime* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainTime_with_result; temporal_rs_PlainTime_with_result temporal_rs_PlainTime_with(const temporal_rs::capi::PlainTime* self, temporal_rs::capi::PartialTime partial, temporal_rs::capi::ArithmeticOverflow_option overflow); + typedef struct temporal_rs_PlainTime_from_utf8_result {union {temporal_rs::capi::PlainTime* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainTime_from_utf8_result; + temporal_rs_PlainTime_from_utf8_result temporal_rs_PlainTime_from_utf8(diplomat::capi::DiplomatStringView s); + + typedef struct temporal_rs_PlainTime_from_utf16_result {union {temporal_rs::capi::PlainTime* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainTime_from_utf16_result; + temporal_rs_PlainTime_from_utf16_result temporal_rs_PlainTime_from_utf16(diplomat::capi::DiplomatString16View s); + uint8_t temporal_rs_PlainTime_hour(const temporal_rs::capi::PlainTime* self); uint8_t temporal_rs_PlainTime_minute(const temporal_rs::capi::PlainTime* self); @@ -114,6 +120,16 @@ inline diplomat::result, temporal_rs::Te return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainTime::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); } +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainTime::from_utf8(std::string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainTime_from_utf8({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainTime::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainTime::from_utf16(std::u16string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainTime_from_utf16({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainTime::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + inline uint8_t temporal_rs::PlainTime::hour() const { auto result = temporal_rs::capi::temporal_rs_PlainTime_hour(this->AsFFI()); return result; diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainYearMonth.d.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainYearMonth.d.hpp index 860463a09..17b905287 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainYearMonth.d.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainYearMonth.d.hpp @@ -40,6 +40,10 @@ class PlainYearMonth { inline diplomat::result, temporal_rs::TemporalError> with(temporal_rs::PartialDate partial, std::optional overflow) const; + inline static diplomat::result, temporal_rs::TemporalError> from_utf8(std::string_view s); + + inline static diplomat::result, temporal_rs::TemporalError> from_utf16(std::u16string_view s); + inline int32_t iso_year() const; inline std::string padded_iso_year_string() const; diff --git a/temporal_capi/bindings/cpp/temporal_rs/PlainYearMonth.hpp b/temporal_capi/bindings/cpp/temporal_rs/PlainYearMonth.hpp index a38cadadf..72e170c01 100644 --- a/temporal_capi/bindings/cpp/temporal_rs/PlainYearMonth.hpp +++ b/temporal_capi/bindings/cpp/temporal_rs/PlainYearMonth.hpp @@ -30,6 +30,12 @@ namespace capi { typedef struct temporal_rs_PlainYearMonth_with_result {union {temporal_rs::capi::PlainYearMonth* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainYearMonth_with_result; temporal_rs_PlainYearMonth_with_result temporal_rs_PlainYearMonth_with(const temporal_rs::capi::PlainYearMonth* self, temporal_rs::capi::PartialDate partial, temporal_rs::capi::ArithmeticOverflow_option overflow); + typedef struct temporal_rs_PlainYearMonth_from_utf8_result {union {temporal_rs::capi::PlainYearMonth* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainYearMonth_from_utf8_result; + temporal_rs_PlainYearMonth_from_utf8_result temporal_rs_PlainYearMonth_from_utf8(diplomat::capi::DiplomatStringView s); + + typedef struct temporal_rs_PlainYearMonth_from_utf16_result {union {temporal_rs::capi::PlainYearMonth* ok; temporal_rs::capi::TemporalError err;}; bool is_ok;} temporal_rs_PlainYearMonth_from_utf16_result; + temporal_rs_PlainYearMonth_from_utf16_result temporal_rs_PlainYearMonth_from_utf16(diplomat::capi::DiplomatString16View s); + int32_t temporal_rs_PlainYearMonth_iso_year(const temporal_rs::capi::PlainYearMonth* self); void temporal_rs_PlainYearMonth_padded_iso_year_string(const temporal_rs::capi::PlainYearMonth* self, diplomat::capi::DiplomatWrite* write); @@ -95,6 +101,16 @@ inline diplomat::result, temporal_r return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainYearMonth::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); } +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainYearMonth::from_utf8(std::string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainYearMonth_from_utf8({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainYearMonth::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + +inline diplomat::result, temporal_rs::TemporalError> temporal_rs::PlainYearMonth::from_utf16(std::u16string_view s) { + auto result = temporal_rs::capi::temporal_rs_PlainYearMonth_from_utf16({s.data(), s.size()}); + return result.is_ok ? diplomat::result, temporal_rs::TemporalError>(diplomat::Ok>(std::unique_ptr(temporal_rs::PlainYearMonth::FromFFI(result.ok)))) : diplomat::result, temporal_rs::TemporalError>(diplomat::Err(temporal_rs::TemporalError::FromFFI(result.err))); +} + inline int32_t temporal_rs::PlainYearMonth::iso_year() const { auto result = temporal_rs::capi::temporal_rs_PlainYearMonth_iso_year(this->AsFFI()); return result; From 8dd09e35818dd24c15a0648d468794f0f13514f5 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Mon, 5 May 2025 12:46:36 -0700 Subject: [PATCH 3/3] fmt --- temporal_capi/src/duration.rs | 4 ++-- temporal_capi/src/instant.rs | 4 ++-- temporal_capi/src/plain_date.rs | 2 +- temporal_capi/src/plain_date_time.rs | 4 ++-- temporal_capi/src/plain_month_day.rs | 4 ++-- temporal_capi/src/plain_time.rs | 6 +++--- temporal_capi/src/plain_year_month.rs | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/temporal_capi/src/duration.rs b/temporal_capi/src/duration.rs index 805211767..0bdad7375 100644 --- a/temporal_capi/src/duration.rs +++ b/temporal_capi/src/duration.rs @@ -6,11 +6,11 @@ use crate::error::ffi::TemporalError; pub mod ffi { use crate::error::ffi::TemporalError; use alloc::boxed::Box; + use alloc::string::String; + use core::str::{self, FromStr}; use diplomat_runtime::DiplomatOption; use diplomat_runtime::{DiplomatStr, DiplomatStr16}; use num_traits::FromPrimitive; - use core::str::{self, FromStr}; - use alloc::string::String; #[diplomat::opaque] pub struct Duration(pub(crate) temporal_rs::Duration); diff --git a/temporal_capi/src/instant.rs b/temporal_capi/src/instant.rs index 638d314e4..4ae75ad50 100644 --- a/temporal_capi/src/instant.rs +++ b/temporal_capi/src/instant.rs @@ -6,9 +6,9 @@ pub mod ffi { use crate::error::ffi::TemporalError; use crate::options::ffi::{DifferenceSettings, RoundingOptions}; use alloc::boxed::Box; - use diplomat_runtime::{DiplomatStr, DiplomatStr16}; - use core::str::{self, FromStr}; use alloc::string::String; + use core::str::{self, FromStr}; + use diplomat_runtime::{DiplomatStr, DiplomatStr16}; #[diplomat::opaque] pub struct Instant(pub temporal_rs::Instant); diff --git a/temporal_capi/src/plain_date.rs b/temporal_capi/src/plain_date.rs index 38cd66d8a..d2e724fb6 100644 --- a/temporal_capi/src/plain_date.rs +++ b/temporal_capi/src/plain_date.rs @@ -15,8 +15,8 @@ pub mod ffi { use crate::plain_time::ffi::PlainTime; use crate::plain_year_month::ffi::PlainYearMonth; use alloc::boxed::Box; - use core::fmt::Write; use alloc::string::String; + use core::fmt::Write; use diplomat_runtime::{DiplomatOption, DiplomatStrSlice, DiplomatWrite}; use diplomat_runtime::{DiplomatStr, DiplomatStr16}; diff --git a/temporal_capi/src/plain_date_time.rs b/temporal_capi/src/plain_date_time.rs index cf9684c8b..52b071245 100644 --- a/temporal_capi/src/plain_date_time.rs +++ b/temporal_capi/src/plain_date_time.rs @@ -15,11 +15,11 @@ pub mod ffi { }; use crate::plain_date::ffi::{PartialDate, PlainDate}; use crate::plain_time::ffi::{PartialTime, PlainTime}; - use core::fmt::Write; use alloc::string::String; + use core::fmt::Write; + use core::str::{self, FromStr}; use diplomat_runtime::DiplomatWrite; use diplomat_runtime::{DiplomatStr, DiplomatStr16}; - use core::str::{self, FromStr}; #[diplomat::opaque] pub struct PlainDateTime(pub(crate) temporal_rs::PlainDateTime); diff --git a/temporal_capi/src/plain_month_day.rs b/temporal_capi/src/plain_month_day.rs index b98a79dd9..85d85e642 100644 --- a/temporal_capi/src/plain_month_day.rs +++ b/temporal_capi/src/plain_month_day.rs @@ -9,11 +9,11 @@ pub mod ffi { use crate::options::ffi::ArithmeticOverflow; use crate::plain_date::ffi::{PartialDate, PlainDate}; + use alloc::string::String; use core::fmt::Write; + use core::str::{self, FromStr}; use diplomat_runtime::DiplomatWrite; use diplomat_runtime::{DiplomatStr, DiplomatStr16}; - use core::str::{self, FromStr}; - use alloc::string::String; #[diplomat::opaque] pub struct PlainMonthDay(pub(crate) temporal_rs::PlainMonthDay); diff --git a/temporal_capi/src/plain_time.rs b/temporal_capi/src/plain_time.rs index c2a678c6e..ed6a8f168 100644 --- a/temporal_capi/src/plain_time.rs +++ b/temporal_capi/src/plain_time.rs @@ -9,11 +9,11 @@ pub mod ffi { use crate::options::ffi::{ ArithmeticOverflow, DifferenceSettings, RoundingMode, ToStringRoundingOptions, Unit, }; + use alloc::string::String; + use core::fmt::Write; + use core::str::{self, FromStr}; use diplomat_runtime::{DiplomatOption, DiplomatWrite}; use diplomat_runtime::{DiplomatStr, DiplomatStr16}; - use core::str::{self, FromStr}; - use core::fmt::Write; - use alloc::string::String; #[diplomat::opaque] pub struct PlainTime(pub(crate) temporal_rs::PlainTime); diff --git a/temporal_capi/src/plain_year_month.rs b/temporal_capi/src/plain_year_month.rs index 04d33ef41..bd325946d 100644 --- a/temporal_capi/src/plain_year_month.rs +++ b/temporal_capi/src/plain_year_month.rs @@ -9,10 +9,10 @@ pub mod ffi { use crate::options::ffi::{ArithmeticOverflow, DifferenceSettings}; use crate::plain_date::ffi::{PartialDate, PlainDate}; + use alloc::string::String; use core::fmt::Write; use diplomat_runtime::DiplomatWrite; use diplomat_runtime::{DiplomatStr, DiplomatStr16}; - use alloc::string::String; use core::str::{self, FromStr};