Struct ScriptWithExtensionsProperty

struct ScriptWithExtensionsProperty<'data> { ... }

A struct that efficiently stores Script and Script_Extensions property data.

🚧 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.

Fields

trie: CodePointTrie<'data, ScriptWithExt>

Note: The ScriptWithExt values in this array will assume a 12-bit layout. The 2 higher order bits 11..10 will indicate how to deduce the Script value and Script_Extensions value, nearly matching the representation in ICU:

High order 2 bits value Script Script_Extensions
3 First value in sub-array, index given by lower 10 bits Sub-array excluding first value, index given by lower 10 bits
2 Script=Inherited Entire sub-array, index given by lower 10 bits
1 Script=Common Entire sub-array, index given by lower 10 bits
0 Value in lower 10 bits [ Script value ] single-element array

When the lower 10 bits of the value are used as an index, that index is used for the outer-level vector of the nested extensions structure.

extensions: VarZeroVec<'data, ZeroSlice<Script>>

This companion structure stores Script_Extensions values, which are themselves arrays / vectors. This structure only stores the values for cases in which scx(cp) != [ sc(cp) ]. Each sub-vector is distinct. The sub-vector represents the Script_Extensions array value for a code point, and may also indicate Script value, as described for the trie field.

Implementations

impl MaybeAsVarULE for ScriptWithExtensionsProperty<'_>

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

fn transform(self: &'a Self) -> &'a <Self as >::Output
fn transform_owned(self: Self) -> <Self as >::Output
unsafe fn make(this: <Self as >::Output) -> Self
fn transform_mut<F>(self: &'a mut Self, f: F)
where
    F: 'static + for<'b> FnOnce(&'b mut <Self as >::Output)

impl<'data> Clone for ScriptWithExtensionsProperty<'data>

fn clone(self: &Self) -> ScriptWithExtensionsProperty<'data>

impl<'data> Debug for ScriptWithExtensionsProperty<'data>

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

impl<'data> Eq for ScriptWithExtensionsProperty<'data>

impl<'data> Freeze for ScriptWithExtensionsProperty<'data>

impl<'data> PartialEq for ScriptWithExtensionsProperty<'data>

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

impl<'data> RefUnwindSafe for ScriptWithExtensionsProperty<'data>

impl<'data> Send for ScriptWithExtensionsProperty<'data>

impl<'data> StructuralPartialEq for ScriptWithExtensionsProperty<'data>

impl<'data> Sync for ScriptWithExtensionsProperty<'data>

impl<'data> Unpin for ScriptWithExtensionsProperty<'data>

impl<'data> UnsafeUnpin for ScriptWithExtensionsProperty<'data>

impl<'data> UnwindSafe for ScriptWithExtensionsProperty<'data>

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

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

impl<T> Any for ScriptWithExtensionsProperty<'data>

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for ScriptWithExtensionsProperty<'data>

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for ScriptWithExtensionsProperty<'data>

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

impl<T> CloneToUninit for ScriptWithExtensionsProperty<'data>

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> ErasedDestructor for ScriptWithExtensionsProperty<'data>

impl<T> From for ScriptWithExtensionsProperty<'data>

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for ScriptWithExtensionsProperty<'data>

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T, U> Into for ScriptWithExtensionsProperty<'data>

fn into(self: Self) -> U

Calls U::from(self).

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

impl<T, U> TryFrom for ScriptWithExtensionsProperty<'data>

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

impl<T, U> TryInto for ScriptWithExtensionsProperty<'data>

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