diff options
Diffstat (limited to 'vendor/icu_locid/src/extensions/private')
-rw-r--r-- | vendor/icu_locid/src/extensions/private/mod.rs | 16 | ||||
-rw-r--r-- | vendor/icu_locid/src/extensions/private/other.rs | 3 |
2 files changed, 11 insertions, 8 deletions
diff --git a/vendor/icu_locid/src/extensions/private/mod.rs b/vendor/icu_locid/src/extensions/private/mod.rs index 8382d166f..161d47f56 100644 --- a/vendor/icu_locid/src/extensions/private/mod.rs +++ b/vendor/icu_locid/src/extensions/private/mod.rs @@ -13,7 +13,7 @@ //! # Examples //! //! ``` -//! use icu::locid::extensions_private_subtag as subtag; +//! use icu::locid::extensions::private::subtag; //! use icu::locid::{locale, Locale}; //! //! let mut loc: Locale = "en-US-x-foo-faa".parse().expect("Parsing failed."); @@ -32,8 +32,10 @@ mod other; use alloc::vec::Vec; use core::ops::Deref; -pub use other::Subtag; +#[doc(inline)] +pub use other::{subtag, Subtag}; +use crate::helpers::ShortSlice; use crate::parser::ParserError; use crate::parser::SubtagIterator; @@ -58,7 +60,7 @@ use crate::parser::SubtagIterator; /// [`Private Use Extensions`]: https://unicode.org/reports/tr35/#pu_extensions /// [`Unicode Locale Identifier`]: https://unicode.org/reports/tr35/#Unicode_locale_identifier #[derive(Clone, PartialEq, Eq, Debug, Default, Hash, PartialOrd, Ord)] -pub struct Private(Vec<Subtag>); +pub struct Private(ShortSlice<Subtag>); impl Private { /// Returns a new empty list of private-use extensions. Same as [`default()`](Default::default()), but is `const`. @@ -72,7 +74,7 @@ impl Private { /// ``` #[inline] pub const fn new() -> Self { - Self(Vec::new()) + Self(ShortSlice::new()) } /// A constructor which takes a pre-sorted list of [`Subtag`]. @@ -89,7 +91,7 @@ impl Private { /// assert_eq!(&private.to_string(), "x-foo-bar"); /// ``` pub fn from_vec_unchecked(input: Vec<Subtag>) -> Self { - Self(input) + Self(input.into()) } /// Empties the [`Private`] list. @@ -116,9 +118,9 @@ impl Private { pub(crate) fn try_from_iter(iter: &mut SubtagIterator) -> Result<Self, ParserError> { let keys = iter .map(Subtag::try_from_bytes) - .collect::<Result<Vec<_>, _>>()?; + .collect::<Result<ShortSlice<_>, _>>()?; - Ok(Self::from_vec_unchecked(keys)) + Ok(Self(keys)) } pub(crate) fn for_each_subtag_str<E, F>(&self, f: &mut F) -> Result<(), E> diff --git a/vendor/icu_locid/src/extensions/private/other.rs b/vendor/icu_locid/src/extensions/private/other.rs index a91e12855..810ffa2f4 100644 --- a/vendor/icu_locid/src/extensions/private/other.rs +++ b/vendor/icu_locid/src/extensions/private/other.rs @@ -18,7 +18,8 @@ impl_tinystr_subtag!( /// assert_eq!(subtag1.as_str(), "foo"); /// ``` Subtag, - extensions::private::Subtag, + extensions::private, + subtag, extensions_private_subtag, 1..=8, s, |