Struct icu_casemap::provider::CaseMapV1

source ยท
pub struct CaseMapV1<'data> {
    pub trie: CodePointTrie<'data, CaseMapData>,
    pub exceptions: CaseMapExceptions<'data>,
}
Expand description

This type contains all of the casemapping data

The methods in the provider module are primarily about accessing its data, however the full algorithms are also implemented as methods on this type in the internals module of this crate.

๐Ÿšง This code is considered unstable; it may change at any time, in breaking or non-breaking ways, including in SemVer minor releases. While the serde representation of data structs is guaranteed to be stable, their Rust representation might not be. Use with caution.
CaseMapper provides low-level access to the data necessary to convert characters and strings to upper, lower, or title case.

Fieldsยง

ยงtrie: CodePointTrie<'data, CaseMapData>

Case mapping data

ยงexceptions: CaseMapExceptions<'data>

Exceptions to the case mapping data

Implementationsยง

sourceยง

impl<'data> CaseMapV1<'data>

source

pub(crate) fn lookup_data(&self, c: char) -> CaseMapData

sourceยง

impl<'data> CaseMapV1<'data>

source

fn simple_helper(&self, c: char, kind: MappingKind) -> char

source

pub(crate) fn simple_lower(&self, c: char) -> char

source

pub(crate) fn simple_upper(&self, c: char) -> char

source

pub(crate) fn simple_title(&self, c: char) -> char

source

pub(crate) fn simple_fold(&self, c: char, options: FoldOptions) -> char

source

fn dot_type(&self, c: char) -> DotType

source

fn is_case_sensitive(&self, c: char) -> bool

source

pub(crate) fn is_cased(&self, c: char) -> bool

Returns whether the character is cased

source

fn full_helper<const IS_TITLE_CONTEXT: bool, W: Write + ?Sized>( &self, c: char, context: ContextIterator<'_>, locale: CaseMapLocale, kind: MappingKind, sink: &mut W, ) -> Result

source

const I_DOT: &'static str = "\u{69}\u{307}"

source

const J_DOT: &'static str = "\u{6a}\u{307}"

source

const I_OGONEK_DOT: &'static str = "\u{12f}\u{307}"

source

const I_DOT_GRAVE: &'static str = "\u{69}\u{307}\u{300}"

source

const I_DOT_ACUTE: &'static str = "\u{69}\u{307}\u{301}"

source

const I_DOT_TILDE: &'static str = "\u{69}\u{307}\u{303}"

source

fn simple_fold_special_case(&self, c: char, options: FoldOptions) -> char

source

fn full_lower_special_case<const IS_TITLE_CONTEXT: bool>( &self, c: char, context: ContextIterator<'_>, locale: CaseMapLocale, ) -> Option<FullMappingResult<'_>>

source

fn full_upper_or_title_special_case<const IS_TITLE_CONTEXT: bool>( &self, c: char, context: ContextIterator<'_>, locale: CaseMapLocale, ) -> Option<FullMappingResult<'_>>

source

fn full_fold_special_case( &self, c: char, _context: ContextIterator<'_>, locale: CaseMapLocale, ) -> Option<FullMappingResult<'_>>

source

pub(crate) fn full_helper_writeable<'a: 'data, const IS_TITLE_CONTEXT: bool>( &'a self, src: &'a str, locale: CaseMapLocale, mapping: MappingKind, titlecase_tail_casing: TrailingCase, ) -> FullCaseWriteable<'a, IS_TITLE_CONTEXT>

IS_TITLE_CONTEXT is true iff the mapping is MappingKind::Title, primarily exists to avoid perf impacts on other more common modes of operation

titlecase_tail_casing is only read in IS_TITLE_CONTEXT

source

pub(crate) fn add_case_closure_to<S: ClosureSink>(&self, c: char, set: &mut S)

Adds all simple case mappings and the full case folding for c to set. Also adds special case closure mappings. The character itself is not added. For example, the mappings

  • for s include long s
  • for sharp s include ss
  • for k include the Kelvin sign
source

pub(crate) fn add_string_case_closure_to<S: ClosureSink>( &self, s: &str, set: &mut S, unfold_data: &CaseMapUnfoldV1<'_>, ) -> bool

Maps the string to single code points and adds the associated case closure mappings.

(see docs on CaseMapper::add_string_case_closure_to)

Trait Implementationsยง

sourceยง

impl<'data> Clone for CaseMapV1<'data>

sourceยง

fn clone(&self) -> CaseMapV1<'data>

Returns a copy of the value. Read more
1.0.0 ยท sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
sourceยง

impl<'data> Debug for CaseMapV1<'data>

sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
sourceยง

impl<'data> PartialEq for CaseMapV1<'data>

sourceยง

fn eq(&self, other: &CaseMapV1<'data>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 ยท sourceยง

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
sourceยง

impl<'a> Yokeable<'a> for CaseMapV1<'static>

ยง

type Output = CaseMapV1<'a>

This type MUST be Self with the 'static replaced with 'a, i.e. Self<'a>
sourceยง

fn transform(&'a self) -> &'a Self::Output

This method must cast self between &'a Self<'static> and &'a Self<'a>. Read more
sourceยง

fn transform_owned(self) -> Self::Output

This method must cast self between Self<'static> and Self<'a>. Read more
sourceยง

unsafe fn make(this: Self::Output) -> Self

This method can be used to cast away Self<'a>โ€™s lifetime. Read more
sourceยง

fn transform_mut<F>(&'a mut self, f: F)
where F: 'static + for<'b> FnOnce(&'b mut Self::Output),

This method must cast self between &'a mut Self<'static> and &'a mut Self<'a>, and pass it to f. Read more
sourceยง

impl<'zf, 'zf_inner> ZeroFrom<'zf, CaseMapV1<'zf_inner>> for CaseMapV1<'zf>

sourceยง

fn zero_from(this: &'zf CaseMapV1<'zf_inner>) -> Self

Clone the other C into a struct that may retain references into C.
sourceยง

impl<'data> StructuralPartialEq for CaseMapV1<'data>

Auto Trait Implementationsยง

ยง

impl<'data> Freeze for CaseMapV1<'data>

ยง

impl<'data> RefUnwindSafe for CaseMapV1<'data>

ยง

impl<'data> Send for CaseMapV1<'data>

ยง

impl<'data> Sync for CaseMapV1<'data>

ยง

impl<'data> Unpin for CaseMapV1<'data>

ยง

impl<'data> UnwindSafe for CaseMapV1<'data>

Blanket Implementationsยง

sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
sourceยง

impl<T> From<T> for T

sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

sourceยง

impl<T, U> Into<U> for T
where U: From<T>,

sourceยง

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

sourceยง

impl<T> ToOwned for T
where T: Clone,

ยง

type Owned = T

The resulting type after obtaining ownership.
sourceยง

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
sourceยง

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
sourceยง

impl<T, U> TryFrom<U> for T
where U: Into<T>,

ยง

type Error = Infallible

The type returned in the event of a conversion error.
sourceยง

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
sourceยง

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

ยง

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
sourceยง

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
sourceยง

impl<T> ErasedDestructor for T
where T: 'static,

sourceยง

impl<T> MaybeSendSync for T