Skip to main content

Tag

Struct Tag 

Source
pub struct Tag {
    pub handle: String,
    pub suffix: String,
    pub original_handle: String,
}
Expand description

A YAML tag.

Fields§

§handle: String

Resolved tag handle or prefix.

Examples include tag:yaml.org,2002: for core-schema tags and ! for local tags.

§suffix: String

Tag suffix following the resolved handle or prefix.

§original_handle: String

Tag handle as written in the source before %TAG directive resolution.

For example, with %TAG !e! tag:example.com,2000:, a source tag !e!keep is resolved as handle = "tag:example.com,2000:" and suffix = "keep", while original_handle = "!e!".

Implementations§

Source§

impl Tag

Source

pub fn new(handle: impl Into<String>, suffix: impl Into<String>) -> Self

Create a tag from resolved parts.

This is mainly useful for tests and consumers constructing parser-compatible tags by hand. When the original source handle matters, use Self::with_original_handle.

Source

pub fn with_original_handle( handle: impl Into<String>, suffix: impl Into<String>, original_handle: impl Into<String>, ) -> Self

Create a tag from resolved parts and the handle as written in the source.

Source

pub fn core_suffix(&self) -> Option<&str>

Return the resolved YAML core-schema suffix for this tag, if it is a known core tag.

The tag is matched by its resolved URI, not by the source handle spelling. For example, !!int, !<tag:yaml.org,2002:int>, and a %TAG split such as %TAG !m! tag:yaml.org,2002:i followed by !m!nt all return Some("int").

Authored tag parts are left unchanged; use Self::parts, Self::original_parts, or Self::original to inspect those spellings.

Source

pub fn suffix_in_namespace(&self, prefix: &str) -> Option<Cow<'_, str>>

Return the type name this tag resolves to within prefix, or None outside it.

Like Self::core_suffix, the tag is matched by its resolved handle ++ suffix URI, not the source spelling, so !!omap, !<tag:yaml.org,2002:omap>, and a %TAG split such as %TAG !o! tag:yaml.org,2002:o then !o!map all resolve to Some("omap") for the tag:yaml.org,2002: prefix — but the name is not limited to the seven core types.

Borrows from self; allocates only when the handle extends past prefix.

Source

pub fn is_yaml_core_schema(&self) -> bool

Returns whether the tag is a YAML tag from the core schema (!!str, !!int, …).

The YAML specification specifies a list of tags for the Core Schema. This function uses the resolved tag URI, so it is independent of how the tag was split between handle and suffix.

§Return

Returns true if the resolved tag is a known YAML 1.2.2 Core Schema tag.

Source

pub fn is_yaml_core_schema_tag(&self, suffix: &str) -> bool

Return true for a YAML core-schema tag with the given suffix.

For example, this matches core-schema tags such as !!str, !!int, !!float, !!bool, !!null, !!map, or !!seq after tag resolution.

Source

pub fn is_custom(&self) -> bool

Return true for a tag outside the YAML 1.2.2 Core Schema tag set.

This checks the resolved tag URI, not just the tag handle spelling. For example, tag:yaml.org,2002:timestamp is in the YAML tag namespace, but it is not a YAML 1.2.2 Core Schema tag.

Source

pub fn parts(&self) -> (&str, &str)

Return the tag as (handle, suffix).

Source

pub fn original_parts(&self) -> (&str, &str)

Return the tag as (original_handle, suffix) using the handle from the source token.

This is useful when a consumer needs author spelling such as !e!keep instead of the resolved URI tag tag:example.com,2000:keep.

Source

pub fn original(&self) -> String

Return the tag spelling reconstructed from the source handle and suffix.

For ordinary shorthand tags this returns the author-facing spelling, such as !e!keep or !!str. For verbatim tags this returns a normalized verbatim spelling such as !<tag:example.com,2000:thing>, not necessarily the byte-exact source token.

Trait Implementations§

Source§

impl Clone for Tag

Source§

fn clone(&self) -> Tag

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 Debug for Tag

Source§

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

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

impl Display for Tag

Source§

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

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

impl Eq for Tag

Source§

impl Hash for Tag

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 Ord for Tag

Source§

fn cmp(&self, other: &Tag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Tag

Source§

fn eq(&self, other: &Tag) -> 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.
Source§

impl PartialOrd for Tag

Source§

fn partial_cmp(&self, other: &Tag) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl StructuralPartialEq for Tag

Auto Trait Implementations§

§

impl Freeze for Tag

§

impl RefUnwindSafe for Tag

§

impl Send for Tag

§

impl Sync for Tag

§

impl Unpin for Tag

§

impl UnsafeUnpin for Tag

§

impl UnwindSafe for Tag

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

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.