Skip to main content

QNameAtom

Struct QNameAtom 

Source
pub struct QNameAtom {
    pub local_name: NameId,
    pub namespace_uri: NameId,
    pub prefix: NameId,
    pub local_name_hash: u32,
    pub qualified_name_idx: u32,
}
Expand description

Atomized qualified name — 20 bytes, Copy.

Equality compares local_name, namespace_uri, prefix, and local_name_hash. The qualified_name_idx field is excluded from equality because it is a per-document StringStore index whose value may differ across occurrences even though the string content is identical (StringStore does not deduplicate). Since the qualified name is fully determined by prefix + local_name, comparing those is sufficient.

The Hash trait implementation hashes only local_name and namespace_uri because XML namespace identity ignores the prefix. This means two atoms that differ only in prefix will hash to the same bucket but will not compare as equal, so QNameTable::atomize will store them as separate entries — which is the desired semantics (the navigator needs to report the original prefix).

Fields§

§local_name: NameId§namespace_uri: NameId§prefix: NameId§local_name_hash: u32§qualified_name_idx: u32

Index into the per-document StringStore (not NameTable). Excluded from PartialEq / hash_atom — see struct doc.

Trait Implementations§

Source§

impl Clone for QNameAtom

Source§

fn clone(&self) -> QNameAtom

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for QNameAtom

Source§

impl Debug for QNameAtom

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Eq for QNameAtom

Source§

impl Hash for QNameAtom

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for QNameAtom

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

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

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> MaybeSendSync for T

Source§

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

Source§

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>,

Source§

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>,

Source§

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.