Skip to content

Commit bbf2ee3

Browse files
authored
Have icu_capi code be available under mod unstable in the public api (#6435)
Fixes #6274 I decided to not actually stick all the files in an `unstable` folder because it feels like unnecessary file structure complexity.
1 parent cd9a3e3 commit bbf2ee3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+281
-260
lines changed

ffi/capi/src/bidi.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ pub mod ffi {
1111
use core::fmt::Write;
1212

1313
#[cfg(feature = "buffer_provider")]
14-
use crate::{errors::ffi::DataError, provider::ffi::DataProvider};
14+
use crate::unstable::{errors::ffi::DataError, provider::ffi::DataProvider};
1515

1616
pub enum BidiDirection {
1717
Ltr,

ffi/capi/src/calendar.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ pub mod ffi {
1010
use alloc::sync::Arc;
1111

1212
#[cfg(feature = "buffer_provider")]
13-
use crate::errors::ffi::DataError;
14-
use crate::locale_core::ffi::Locale;
13+
use crate::unstable::errors::ffi::DataError;
14+
use crate::unstable::locale_core::ffi::Locale;
1515
#[cfg(feature = "buffer_provider")]
16-
use crate::provider::ffi::DataProvider;
16+
use crate::unstable::provider::ffi::DataProvider;
1717

1818
/// The various calendar types currently supported by [`Calendar`]
1919
#[diplomat::enum_convert(icu_calendar::AnyCalendarKind, needs_wildcard)]

ffi/capi/src/casemap.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ pub mod ffi {
1111
use alloc::boxed::Box;
1212

1313
#[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
14-
use crate::errors::ffi::DataError;
15-
use crate::locale_core::ffi::Locale;
14+
use crate::unstable::errors::ffi::DataError;
15+
use crate::unstable::locale_core::ffi::Locale;
1616
#[cfg(feature = "buffer_provider")]
17-
use crate::provider::ffi::DataProvider;
17+
use crate::unstable::provider::ffi::DataProvider;
1818
use diplomat_runtime::DiplomatOption;
1919

2020
use writeable::Writeable;
@@ -201,7 +201,7 @@ pub mod ffi {
201201
pub fn add_case_closure_to(
202202
&self,
203203
c: DiplomatChar,
204-
builder: &mut crate::collections_sets::ffi::CodePointSetBuilder,
204+
builder: &mut crate::unstable::collections_sets::ffi::CodePointSetBuilder,
205205
) {
206206
if let Some(ch) = char::from_u32(c) {
207207
self.0.as_borrowed().add_case_closure_to(ch, &mut builder.0)
@@ -302,7 +302,7 @@ pub mod ffi {
302302
pub fn add_case_closure_to(
303303
&self,
304304
c: DiplomatChar,
305-
builder: &mut crate::collections_sets::ffi::CodePointSetBuilder,
305+
builder: &mut crate::unstable::collections_sets::ffi::CodePointSetBuilder,
306306
) {
307307
if let Some(ch) = char::from_u32(c) {
308308
self.0.as_borrowed().add_case_closure_to(ch, &mut builder.0)
@@ -321,7 +321,7 @@ pub mod ffi {
321321
pub fn add_string_case_closure_to(
322322
&self,
323323
s: &DiplomatStr,
324-
builder: &mut crate::collections_sets::ffi::CodePointSetBuilder,
324+
builder: &mut crate::unstable::collections_sets::ffi::CodePointSetBuilder,
325325
) -> bool {
326326
let s = core::str::from_utf8(s).unwrap_or("");
327327
self.0

ffi/capi/src/collator.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ pub mod ffi {
1111
use alloc::boxed::Box;
1212

1313
#[cfg(feature = "buffer_provider")]
14-
use crate::provider::ffi::DataProvider;
14+
use crate::unstable::provider::ffi::DataProvider;
1515
#[cfg(any(feature = "compiled_data", feature = "buffer_provider"))]
16-
use crate::{errors::ffi::DataError, locale_core::ffi::Locale};
16+
use crate::unstable::{errors::ffi::DataError, locale_core::ffi::Locale};
1717
use diplomat_runtime::DiplomatOption;
1818

1919
#[diplomat::opaque]

ffi/capi/src/collections_sets.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
pub mod ffi {
99
use alloc::boxed::Box;
1010

11-
use crate::properties_sets::ffi::CodePointSetData;
11+
use crate::unstable::properties_sets::ffi::CodePointSetData;
1212

1313
#[diplomat::opaque]
1414
#[diplomat::rust_link(

ffi/capi/src/date.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ pub mod ffi {
1313
use core::fmt::Write;
1414
use icu_calendar::Iso;
1515

16-
use crate::calendar::ffi::Calendar;
17-
use crate::errors::ffi::{CalendarError, CalendarParseError};
16+
use crate::unstable::calendar::ffi::Calendar;
17+
use crate::unstable::errors::ffi::{CalendarError, CalendarParseError};
1818

1919
use tinystr::TinyAsciiStr;
2020

ffi/capi/src/date_formatter.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ pub mod ffi {
1414
use writeable::Writeable;
1515

1616
#[allow(unused_imports)]
17-
use crate::{
17+
use crate::datetime_helpers::map_or_default;
18+
19+
#[allow(unused_imports)]
20+
use crate::unstable::{
1821
date::ffi::{Date, IsoDate},
1922
datetime::ffi::DateTime,
20-
datetime_helpers::map_or_default,
2123
datetime_options::ffi::{DateTimeAlignment, DateTimeLength, TimePrecision, YearStyle},
2224
errors::ffi::DateTimeFormatterLoadError,
2325
errors::ffi::DateTimeMismatchedCalendarError,
@@ -26,7 +28,7 @@ pub mod ffi {
2628
};
2729

2830
#[cfg(feature = "buffer_provider")]
29-
use crate::provider::ffi::DataProvider;
31+
use crate::unstable::provider::ffi::DataProvider;
3032

3133
#[diplomat::opaque]
3234
#[diplomat::rust_link(icu::datetime::DateTimeFormatter, Typedef)]

ffi/capi/src/date_time_formatter.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ pub mod ffi {
1414
use writeable::Writeable;
1515

1616
#[allow(unused_imports)]
17-
use crate::{
17+
use crate::datetime_helpers::map_or_default;
18+
19+
#[allow(unused_imports)]
20+
use crate::unstable::{
1821
date::ffi::{Date, IsoDate},
1922
datetime::ffi::DateTime,
20-
datetime_helpers::map_or_default,
2123
datetime_options::ffi::{DateTimeAlignment, DateTimeLength, TimePrecision, YearStyle},
2224
errors::ffi::DateTimeFormatterLoadError,
2325
errors::ffi::DateTimeMismatchedCalendarError,
@@ -26,7 +28,7 @@ pub mod ffi {
2628
};
2729

2830
#[cfg(feature = "buffer_provider")]
29-
use crate::provider::ffi::DataProvider;
31+
use crate::unstable::provider::ffi::DataProvider;
3032

3133
#[diplomat::opaque]
3234
#[diplomat::rust_link(icu::datetime::DateTimeFormatter, Typedef)]

ffi/capi/src/datetime.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ pub mod ffi {
99
use alloc::boxed::Box;
1010
use icu_calendar::Iso;
1111

12-
use crate::calendar::ffi::Calendar;
13-
use crate::date::ffi::{Date, IsoDate};
14-
use crate::errors::ffi::CalendarParseError;
15-
use crate::time::ffi::Time;
12+
use crate::unstable::calendar::ffi::Calendar;
13+
use crate::unstable::date::ffi::{Date, IsoDate};
14+
use crate::unstable::errors::ffi::CalendarParseError;
15+
use crate::unstable::time::ffi::Time;
1616

1717
/// An ICU4X DateTime object capable of containing a ISO-8601 date and time.
1818
#[diplomat::rust_link(icu::time::DateTime, Struct)]

ffi/capi/src/datetime_helpers.rs

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ where
2020

2121
pub(super) fn date_formatter_with_zone<Zone>(
2222
formatter: &DateTimeFormatter<DateFieldSet>,
23-
locale: &crate::locale_core::ffi::Locale,
23+
locale: &crate::unstable::locale_core::ffi::Locale,
2424
zone: Zone,
2525
load: impl FnOnce(
2626
&mut DateTimeNames<Combo<DateFieldSet, Zone>>,
27-
) -> Result<(), crate::errors::ffi::DateTimeFormatterLoadError>,
27+
) -> Result<(), crate::unstable::errors::ffi::DateTimeFormatterLoadError>,
2828
to_formatter: impl FnOnce(
2929
DateTimeNames<Combo<DateFieldSet, Zone>>,
3030
Combo<DateFieldSet, Zone>,
@@ -36,8 +36,8 @@ pub(super) fn date_formatter_with_zone<Zone>(
3636
),
3737
>,
3838
) -> Result<
39-
Box<crate::zoned_date_formatter::ffi::ZonedDateFormatter>,
40-
crate::errors::ffi::DateTimeFormatterLoadError,
39+
Box<crate::unstable::zoned_date_formatter::ffi::ZonedDateFormatter>,
40+
crate::unstable::errors::ffi::DateTimeFormatterLoadError,
4141
>
4242
where
4343
Zone: DateTimeMarkers + ZoneMarkers,
@@ -55,11 +55,11 @@ where
5555
.map_err(|e| match e {
5656
BuilderError::InvalidDateFields => {
5757
// This can fail if the date fields are for a calendar period
58-
crate::errors::ffi::DateTimeFormatterLoadError::InvalidDateFields
58+
crate::unstable::errors::ffi::DateTimeFormatterLoadError::InvalidDateFields
5959
}
6060
_ => {
6161
debug_assert!(false, "should be infallible, but got: {e:?}");
62-
crate::errors::ffi::DateTimeFormatterLoadError::Unknown
62+
crate::unstable::errors::ffi::DateTimeFormatterLoadError::Unknown
6363
}
6464
})?
6565
.zone(zone);
@@ -68,17 +68,17 @@ where
6868
.map_err(|(e, _)| e)?
6969
.cast_into_fset();
7070
Ok(Box::new(
71-
crate::zoned_date_formatter::ffi::ZonedDateFormatter(formatter),
71+
crate::unstable::zoned_date_formatter::ffi::ZonedDateFormatter(formatter),
7272
))
7373
}
7474

7575
pub(super) fn datetime_formatter_with_zone<Zone>(
7676
formatter: &DateTimeFormatter<CompositeDateTimeFieldSet>,
77-
locale: &crate::locale_core::ffi::Locale,
77+
locale: &crate::unstable::locale_core::ffi::Locale,
7878
zone: Zone,
7979
load: impl FnOnce(
8080
&mut DateTimeNames<Combo<DateAndTimeFieldSet, Zone>>,
81-
) -> Result<(), crate::errors::ffi::DateTimeFormatterLoadError>,
81+
) -> Result<(), crate::unstable::errors::ffi::DateTimeFormatterLoadError>,
8282
to_formatter: impl FnOnce(
8383
DateTimeNames<Combo<DateAndTimeFieldSet, Zone>>,
8484
Combo<DateAndTimeFieldSet, Zone>,
@@ -90,8 +90,8 @@ pub(super) fn datetime_formatter_with_zone<Zone>(
9090
),
9191
>,
9292
) -> Result<
93-
Box<crate::zoned_date_time_formatter::ffi::ZonedDateTimeFormatter>,
94-
crate::errors::ffi::DateTimeFormatterLoadError,
93+
Box<crate::unstable::zoned_date_time_formatter::ffi::ZonedDateTimeFormatter>,
94+
crate::unstable::errors::ffi::DateTimeFormatterLoadError,
9595
>
9696
where
9797
Zone: DateTimeMarkers + ZoneMarkers,
@@ -109,11 +109,11 @@ where
109109
.map_err(|e| match e {
110110
BuilderError::InvalidDateFields => {
111111
debug_assert!(false, "fields were already validated in DateTimeFormatter");
112-
crate::errors::ffi::DateTimeFormatterLoadError::InvalidDateFields
112+
crate::unstable::errors::ffi::DateTimeFormatterLoadError::InvalidDateFields
113113
}
114114
_ => {
115115
debug_assert!(false, "should be infallible, but got: {e:?}");
116-
crate::errors::ffi::DateTimeFormatterLoadError::Unknown
116+
crate::unstable::errors::ffi::DateTimeFormatterLoadError::Unknown
117117
}
118118
})?
119119
.zone(zone);
@@ -122,17 +122,17 @@ where
122122
.map_err(|(e, _)| e)?
123123
.cast_into_fset();
124124
Ok(Box::new(
125-
crate::zoned_date_time_formatter::ffi::ZonedDateTimeFormatter(formatter),
125+
crate::unstable::zoned_date_time_formatter::ffi::ZonedDateTimeFormatter(formatter),
126126
))
127127
}
128128

129129
pub(super) fn date_formatter_gregorian_with_zone<Zone>(
130130
formatter: &FixedCalendarDateTimeFormatter<Gregorian, DateFieldSet>,
131-
locale: &crate::locale_core::ffi::Locale,
131+
locale: &crate::unstable::locale_core::ffi::Locale,
132132
zone: Zone,
133133
load: impl FnOnce(
134134
&mut FixedCalendarDateTimeNames<Gregorian, Combo<DateFieldSet, Zone>>,
135-
) -> Result<(), crate::errors::ffi::DateTimeFormatterLoadError>,
135+
) -> Result<(), crate::unstable::errors::ffi::DateTimeFormatterLoadError>,
136136
to_formatter: impl FnOnce(
137137
FixedCalendarDateTimeNames<Gregorian, Combo<DateFieldSet, Zone>>,
138138
Combo<DateFieldSet, Zone>,
@@ -144,8 +144,8 @@ pub(super) fn date_formatter_gregorian_with_zone<Zone>(
144144
),
145145
>,
146146
) -> Result<
147-
Box<crate::zoned_date_formatter::ffi::ZonedDateFormatterGregorian>,
148-
crate::errors::ffi::DateTimeFormatterLoadError,
147+
Box<crate::unstable::zoned_date_formatter::ffi::ZonedDateFormatterGregorian>,
148+
crate::unstable::errors::ffi::DateTimeFormatterLoadError,
149149
>
150150
where
151151
Zone: DateTimeMarkers + ZoneMarkers,
@@ -163,11 +163,11 @@ where
163163
.map_err(|e| match e {
164164
BuilderError::InvalidDateFields => {
165165
// This can fail if the date fields are for a calendar period
166-
crate::errors::ffi::DateTimeFormatterLoadError::InvalidDateFields
166+
crate::unstable::errors::ffi::DateTimeFormatterLoadError::InvalidDateFields
167167
}
168168
_ => {
169169
debug_assert!(false, "should be infallible, but got: {e:?}");
170-
crate::errors::ffi::DateTimeFormatterLoadError::Unknown
170+
crate::unstable::errors::ffi::DateTimeFormatterLoadError::Unknown
171171
}
172172
})?
173173
.zone(zone);
@@ -176,17 +176,17 @@ where
176176
.map_err(|(e, _)| e)?
177177
.cast_into_fset();
178178
Ok(Box::new(
179-
crate::zoned_date_formatter::ffi::ZonedDateFormatterGregorian(formatter),
179+
crate::unstable::zoned_date_formatter::ffi::ZonedDateFormatterGregorian(formatter),
180180
))
181181
}
182182

183183
pub(super) fn datetime_formatter_gregorian_with_zone<Zone>(
184184
formatter: &FixedCalendarDateTimeFormatter<Gregorian, CompositeDateTimeFieldSet>,
185-
locale: &crate::locale_core::ffi::Locale,
185+
locale: &crate::unstable::locale_core::ffi::Locale,
186186
zone: Zone,
187187
load: impl FnOnce(
188188
&mut FixedCalendarDateTimeNames<Gregorian, Combo<DateAndTimeFieldSet, Zone>>,
189-
) -> Result<(), crate::errors::ffi::DateTimeFormatterLoadError>,
189+
) -> Result<(), crate::unstable::errors::ffi::DateTimeFormatterLoadError>,
190190
to_formatter: impl FnOnce(
191191
FixedCalendarDateTimeNames<Gregorian, Combo<DateAndTimeFieldSet, Zone>>,
192192
Combo<DateAndTimeFieldSet, Zone>,
@@ -198,8 +198,8 @@ pub(super) fn datetime_formatter_gregorian_with_zone<Zone>(
198198
),
199199
>,
200200
) -> Result<
201-
Box<crate::zoned_date_time_formatter::ffi::ZonedDateTimeFormatterGregorian>,
202-
crate::errors::ffi::DateTimeFormatterLoadError,
201+
Box<crate::unstable::zoned_date_time_formatter::ffi::ZonedDateTimeFormatterGregorian>,
202+
crate::unstable::errors::ffi::DateTimeFormatterLoadError,
203203
>
204204
where
205205
Zone: DateTimeMarkers + ZoneMarkers,
@@ -217,11 +217,11 @@ where
217217
.map_err(|e| match e {
218218
BuilderError::InvalidDateFields => {
219219
debug_assert!(false, "fields were already validated in DateTimeFormatter");
220-
crate::errors::ffi::DateTimeFormatterLoadError::InvalidDateFields
220+
crate::unstable::errors::ffi::DateTimeFormatterLoadError::InvalidDateFields
221221
}
222222
_ => {
223223
debug_assert!(false, "should be infallible, but got: {e:?}");
224-
crate::errors::ffi::DateTimeFormatterLoadError::Unknown
224+
crate::unstable::errors::ffi::DateTimeFormatterLoadError::Unknown
225225
}
226226
})?
227227
.zone(zone);
@@ -230,6 +230,6 @@ where
230230
.map_err(|(e, _)| e)?
231231
.cast_into_fset();
232232
Ok(Box::new(
233-
crate::zoned_date_time_formatter::ffi::ZonedDateTimeFormatterGregorian(formatter),
233+
crate::unstable::zoned_date_time_formatter::ffi::ZonedDateTimeFormatterGregorian(formatter),
234234
))
235235
}

0 commit comments

Comments
 (0)