pub struct ScriptWithExtensionsProperty<'data> {
pub trie: CodePointTrie<'data, ScriptWithExt>,
pub extensions: VarZeroVec<'data, ZeroSlice<Script>>,
}
Expand description
A struct that efficiently stores Script
and Script_Extensions
property data.
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.
Trait Implementations§
Source§impl<'data> Clone for ScriptWithExtensionsProperty<'data>
impl<'data> Clone for ScriptWithExtensionsProperty<'data>
Source§fn clone(&self) -> ScriptWithExtensionsProperty<'data>
fn clone(&self) -> ScriptWithExtensionsProperty<'data>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl<'data> Debug for ScriptWithExtensionsProperty<'data>
impl<'data> Debug for ScriptWithExtensionsProperty<'data>
Source§impl MaybeAsVarULE for ScriptWithExtensionsProperty<'_>
impl MaybeAsVarULE for ScriptWithExtensionsProperty<'_>
Source§impl<'data> PartialEq for ScriptWithExtensionsProperty<'data>
impl<'data> PartialEq for ScriptWithExtensionsProperty<'data>
Source§fn eq(&self, other: &ScriptWithExtensionsProperty<'data>) -> bool
fn eq(&self, other: &ScriptWithExtensionsProperty<'data>) -> bool
self
and other
values to be equal, and is used by ==
.Source§impl<'a> Yokeable<'a> for ScriptWithExtensionsProperty<'static>
impl<'a> Yokeable<'a> for ScriptWithExtensionsProperty<'static>
Source§type Output = ScriptWithExtensionsProperty<'a>
type Output = ScriptWithExtensionsProperty<'a>
Self
with the 'static
replaced with 'a
, i.e. Self<'a>
Source§fn transform_owned(self) -> Self::Output
fn transform_owned(self) -> Self::Output
Source§impl<'zf, 'zf_inner> ZeroFrom<'zf, ScriptWithExtensionsProperty<'zf_inner>> for ScriptWithExtensionsProperty<'zf>
impl<'zf, 'zf_inner> ZeroFrom<'zf, ScriptWithExtensionsProperty<'zf_inner>> for ScriptWithExtensionsProperty<'zf>
Source§fn zero_from(this: &'zf ScriptWithExtensionsProperty<'zf_inner>) -> Self
fn zero_from(this: &'zf ScriptWithExtensionsProperty<'zf_inner>) -> Self
C
into a struct that may retain references into C
.impl<'data> Eq for ScriptWithExtensionsProperty<'data>
impl<'data> StructuralPartialEq for ScriptWithExtensionsProperty<'data>
Auto Trait Implementations§
impl<'data> Freeze for ScriptWithExtensionsProperty<'data>
impl<'data> RefUnwindSafe for ScriptWithExtensionsProperty<'data>
impl<'data> Send for ScriptWithExtensionsProperty<'data>
impl<'data> Sync for ScriptWithExtensionsProperty<'data>
impl<'data> Unpin for ScriptWithExtensionsProperty<'data>
impl<'data> UnwindSafe for ScriptWithExtensionsProperty<'data>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> ErasedDestructor for Twhere
T: 'static,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 96 bytes