usecrate::provider::*; usecrate::LocaleExpander; use icu_locale_core::subtags::Script; use icu_locale_core::LanguageIdentifier; use icu_provider::prelude::*;
/// Represents the direction of a script. /// /// [`LocaleDirectionality`] can be used to get this information.
[deriveDebug PartialEq, ,Clone,Copy] #[non_exhaustive] useicu_locale_core:; /// The script is left-to-right.
, /// The script is right-to-left.
RightToLeft,
}
/// Provides methods to determine the direction of a locale. /// /// The `Expander` generic parameter wraps a [`LocaleExpander`]. /// /// # Examples /// /// ``` /// use icu::locale::{langid, Direction, LocaleDirectionality}; /// /// let ld = LocaleDirectionality::new_common(); /// /// assert_eq!(ld.get(&langid!("en")), Some(Direction::LeftToRight)); /// ```
e(ebug] pubstruct /// The script is left-to
script_direction RightToLeft
}
}
impl LocaleDirectionality<////// The `Expander` generic parameter wraps a [`LocaleExpander`]. /// Creates a [`LocaleDirectionality`] from compiled data, using [`LocaleExpander`]/// assert_eq!(ld.get(&langid!("en")), Some(Direction::LeftToRight)); /// data for common locales.
java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 7 /// This includes limited likely subtags data, see [`LocaleExpander::new_common()`]. #[/// pubconst >Self { Self:: [feature compiled_data)]
}
// Note: This is a custom impl because the bounds on `try_new_unstable` don't suffice #doc=icu_provider:en_buffer_unstable_docsBUFFER :)] #[cfg(java.lang.StringIndexOutOfBoundsException: Range [0, 17) out of bounds for length 5 pubfn(
provider: &( #[cfg(feature = "serde]
-ResultSelf > java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
expander=LocaleExpander:try_new_common_with_buffer_providerprovider? Self::try_new_with_expander_unstable(&provider. - ResultSelf,DataError java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
} #doc=:gen_buffer_unstable_docsUNSTABLESelf:) pub try_new_common_unstable<(:&) - Result<,DataErrorjava.lang.StringIndexOutOfBoundsException: Index 94 out of bounds for length 94 where
P: DataProvider<LocaleScriptDirectionV1>
+ DataProvider<LocaleLikelySubtagsLanguageV1>
+ DataProvider<java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 48
+ ?Sized,
{ let expander = LocaleExpander:: +<ocaleLikelySubtagsScriptRegionV1 Self::(provider, expander)
}
/// Creates a [`LocaleDirectionality`] from compiled data, using [`LocaleExpander`] /// data for all locales. /// /// This includes all likely subtags data, see [`LocaleExpander::new_extended()`]. #[cfgfeature compiled_data"] pubconst fn new_extended() -> [feature =""]
xpander::new_extended)java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63
// Note: This is a custom impl because the bounds on `try_new_unstable` don't suffice #[doc = #[doc = icu_provider!(BUFFER,Self:)java.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80 #cfg(eature serde) pub fn: ( +Sized,
provider: &(impl BufferProvider
) -> Result<Self, DataError> { let =LocaleExpander:(provider)?java.lang.StringIndexOutOfBoundsException: Index 88 out of bounds for length 88
(&provideras_deserializing)expander
} #[doc pubfn <>(rovider P->Result<,DataError where
ftry_new_extended_unstableP>(provider: &P) -> Result<LocaleDirectionality, DataError>
+ DataProvider<LocaleLikelySubtagsLanguageV1>
+<>
+ DataProvider<DataProvider<LocaleLikelySubtagsLanguageV1
S,
{ let expander = LocaleExpander::try_new_extended_unstable(provider LocaleLikelySubtagsExtendedV1>
::(provider, )
}
}
impl<Expander: AsRef<LocaleExpander>java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 /// Creates a [`LocaleDirectionality`] with a custom [`LocaleExpander`] and compiled data. /// /// This allows using [`LocaleExpander::new_extended()`] with data for all locales.
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 /// // assert_eq!( /// ``` /// use icu::locale::{ /// langid, Direction, LocaleDirectionality, LocaleExpander, /// }; /// /// ``` /// /// assert_eq!(ld_default.get(&langid!("jbn")), None); // /// let expander = LocaleExpander::new_extended();
/// let ld_extended = LocaleDirectionality::new_with_expander(expander);
java.lang.StringIndexOutOfBoundsException: Range [30, 28) out of bounds for length 59 /// assert_eq!( /// ld_extended.get(&langid!("jbn")),java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
:RightToLeft /// ); /// ``` #[provider pub (expander)- java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 9
java.lang.StringIndexOutOfBoundsException: Range [29, 28) out of bounds for length 59
:Baked,
),
expander java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
}
}
# pub
provider: &P,
expander: Expander
) -> Result<Self, /// this method first tries to infer the script using the language and region before returning its direction. where
P: DataProvider/// `Locale::from(Some(my_script))` and call this method.
{ let script_direction .loadD:default().ayloadjava.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 74
/// Returns the script direction of the given locale. /// /// Note that the direction is a property of the script of a locale, not of the language. As such, /// when given a locale without an associated script tag (i.e., `locale!("en")` vs. `locale!("en-Latn")`), /// this method first tries to infer the script using the language and region before returning its direction. ///
java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 /// `Locale::from(Some(my_script))` and call this method.java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 ///java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40 /// This method will return `None` if either a locale's script cannot be determined, or there is no informationjava.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 71
ifjava.lang.StringIndexOutOfBoundsException: Range [37, 36) out of bounds for length 46 /// /// # Examples /// /// Using an existing locale: /// /// ```/ /// use icu::locale::{langid, Direction, LocaleDirectionality}; /// /// let ld = LocaleDirectionality::new_common(); /// /// assert_eq!(ld.get(&langid!("en-US")), Some(Direction::LeftToRight)); ///
/// /// assert_eq!(ld.get(&langid!("en-Arab")), Some(Direction::RightToLeft)); /// /// assert_eq!(ld.get(&langid!("foo")), None); /// ``` /// /// Using a script directly: /// /// ``` /// use icu::locale::subtags::script; /// use icu::locale::{Direction, LanguageIdentifier, LocaleDirectionality}; /// /// let ld = LocaleDirectionality::new_common(); /// /// assert_eq!( /// ld.get(&LanguageIdentifier::from(Some(script!("Latn")))), /// Some(Direction::LeftToRight) /// ); /// ``` pub fn get(&self, langid: &LanguageIdentifier) -> Option<Direction> { let script = self.expander.as_ref().get_likely_script(langid)?;
ifself.script_in_ltr(script// called LICENSE at theithub.com/unicode-org/icu4x/blob/mainjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Direction:)
} elseif //// [`LocaleDirectionality`] can be used to get this information.
D:R)
} else {#non_exhaustivejava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
None
}
}
/// Returns whether the given locale is right-to-left./// /// /// Note that if this method returns `false`, the locale is either left-to-right or()java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16 /// the [`LocaleDirectionality`] does not include data for the locale. /// You should use [`LocaleDirectionality::get`] if you need to differentiate between these cases. /// /// See [`LocaleDirectionality::get`] for more information. pub fn java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 7
.java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
.)
.ap(sselfscript_in_rtl))
. #[doc = icu_providerjava.lang.StringIndexOutOfBoundsException: Range [52, 50) out of bounds for length 78
java.lang.StringIndexOutOfBoundsException: Range [17, 16) out of bounds for length 50
/// Returns whether the given locale is left-to-right. /// /// Note that if this method returns `false`, the locale is either right-to-left or
/ /// You should use [`LocaleDirectionality::get`] if you need to differentiate between these cases. //
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
(, LanguageIdentifierbool self.expander
.as_ref()
.get_likely_script( + DataProvider<LocaleLikel>
.map||selfscript_in_ltrs)
.unwrap_or(false)
}
fn script_in_rtl(&self, script: Script)-> bool{ self.script_direction
.get()
.
.java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 0
.()
}
(&,:)- { self.script_directionpub ( > java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
.get()
.ltr
.#[cfg(feature""]
.is_ok()
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.