Skip to main content

OwnedFormatItemInner

Enum OwnedFormatItemInner 

Source
pub(crate) enum OwnedFormatItemInner {
    Literal(Vec<u8>),
    StringLiteral(String),
    Component(Component),
    Compound(Vec<Self>),
    Optional {
        format: bool,
        item: Box<Self>,
    },
    First(Vec<Self>),
}

Variants§

§

Literal(Vec<u8>)

§

StringLiteral(String)

§

Component(Component)

§

Compound(Vec<Self>)

§

Optional

Fields

§format: bool
§item: Box<Self>
§

First(Vec<Self>)

Implementations§

Source§

impl OwnedFormatItemInner

Source

pub(crate) fn optimize(&mut self)

Source

const fn no_op() -> Self

Source

fn merge_consecutive_literals(&mut self) -> bool

When there are multiple consecutive literals, they can be merged into a single literal.

As there are both UTF-8 and non-UTF-8 literals, the output is UTF-8 if and only if both literals are as well.

Source

fn unnest_trivial_compounds(&mut self) -> bool

When a compound item only contains a single item, it can be replaced with that item.

Source

fn unnest_nested_compounds(&mut self) -> bool

When a compound item contains another compound item, the latter can be inlined into the former.

Source

fn unnest_first_only_one(&mut self) -> bool

When a first item only contains a single item, it can be replaced with that item.

Source

fn unnest_nested_first(&mut self) -> bool

When a first item contains another first item, the latter can be inlined into the former.

Source

fn only_formatting_uplift_optional(&mut self) -> bool

When formatting is enabled but parsing is not, the behavior of an optional item is known ahead of time. If it is formatted, the optional item can be replaced with its inner item. If it is not formatted, it can be replace with a no-op (that will likely be removed in a later pass).

Source

fn only_formatting_uplift_first(&mut self) -> bool

When formatting is enabled but parsing is not, the behavior of a first item is known ahead of time. It can be replaced with its first item, as the first item will always be the one that is formatted.

Source

fn only_formatting_eliminate_end(&mut self) -> bool

Source

fn compound_containing_empty_string(&mut self) -> bool

When a compound item contains an empty string literal, it can be removed as it has no effect.

Trait Implementations§

Source§

impl Clone for OwnedFormatItemInner

Source§

fn clone(&self) -> OwnedFormatItemInner

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'a> TryFrom<(FormatDescriptionVersion, Box<[Item<'a>]>)> for OwnedFormatItemInner

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from( (version, items): (FormatDescriptionVersion, Box<[Item<'a>]>), ) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<(FormatDescriptionVersion, Item<'_>)> for OwnedFormatItemInner

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from( (version, item): (FormatDescriptionVersion, Item<'_>), ) -> Result<Self, Self::Error>

Performs the conversion.

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

Source§

#[doc(hidden)]
const SIZE: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)]
const ALIGN: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)]
const ALIGNMENT: Alignment = _

🔬This is a nightly-only experimental API. (ptr_alignment_type)
Source§

#[doc(hidden)]
const IS_ZST: bool = _

🔬This is a nightly-only experimental API. (sized_type_properties)
true if this type requires no storage. false if its size is greater than zero. Read more
Source§

#[doc(hidden)]
const LAYOUT: Layout = _

🔬This is a nightly-only experimental API. (sized_type_properties)
Source§

#[doc(hidden)]
const MAX_SLICE_LEN: usize = _

🔬This is a nightly-only experimental API. (sized_type_properties)
The largest safe length for a [Self]. Read more
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.