pub struct ScriptWithExtensionsPropertyV1<'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 ScriptWithExtensionsPropertyV1<'data>
impl<'data> Clone for ScriptWithExtensionsPropertyV1<'data>
Source§fn clone(&self) -> ScriptWithExtensionsPropertyV1<'data>
fn clone(&self) -> ScriptWithExtensionsPropertyV1<'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 ScriptWithExtensionsPropertyV1<'data>
impl<'data> Debug for ScriptWithExtensionsPropertyV1<'data>
Source§impl<'data> PartialEq for ScriptWithExtensionsPropertyV1<'data>
impl<'data> PartialEq for ScriptWithExtensionsPropertyV1<'data>
Source§fn eq(&self, other: &ScriptWithExtensionsPropertyV1<'data>) -> bool
fn eq(&self, other: &ScriptWithExtensionsPropertyV1<'data>) -> bool
self and other values to be equal, and is used by ==.Source§impl<'a> Yokeable<'a> for ScriptWithExtensionsPropertyV1<'static>
impl<'a> Yokeable<'a> for ScriptWithExtensionsPropertyV1<'static>
Source§type Output = ScriptWithExtensionsPropertyV1<'a>
type Output = ScriptWithExtensionsPropertyV1<'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, ScriptWithExtensionsPropertyV1<'zf_inner>> for ScriptWithExtensionsPropertyV1<'zf>
impl<'zf, 'zf_inner> ZeroFrom<'zf, ScriptWithExtensionsPropertyV1<'zf_inner>> for ScriptWithExtensionsPropertyV1<'zf>
Source§fn zero_from(this: &'zf ScriptWithExtensionsPropertyV1<'zf_inner>) -> Self
fn zero_from(this: &'zf ScriptWithExtensionsPropertyV1<'zf_inner>) -> Self
C into a struct that may retain references into C.impl<'data> Eq for ScriptWithExtensionsPropertyV1<'data>
impl<'data> StructuralPartialEq for ScriptWithExtensionsPropertyV1<'data>
Auto Trait Implementations§
impl<'data> Freeze for ScriptWithExtensionsPropertyV1<'data>
impl<'data> RefUnwindSafe for ScriptWithExtensionsPropertyV1<'data>
impl<'data> Send for ScriptWithExtensionsPropertyV1<'data>
impl<'data> Sync for ScriptWithExtensionsPropertyV1<'data>
impl<'data> Unpin for ScriptWithExtensionsPropertyV1<'data>
impl<'data> UnwindSafe for ScriptWithExtensionsPropertyV1<'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,
impl<T> MaybeSendSync for T
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