Skip to main content

Item

Enum Item 

Source
pub enum Item {
    Str(String),
    None,
    Prim(Prim),
    Func(FuncName),
    Alias {
        map: Option<String>,
        name: String,
    },
    CaptureGroup {
        id: usize,
        inner: Box<Item>,
    },
    CaptureRef(usize),
    Maybe(Box<Item>),
    Some(Box<Item>),
    Range(char, char),
    Set(Vec<Item>),
    Concat(Vec<Item>),
}
Expand description

A sub-rule item tree (from, to, constraint items).

Variants§

§

Str(String)

Literal string (Item::String).

§

None

The none keyword — empty string.

§

Prim(Prim)

Zero-width / class primitive (NodeAdapter: Alias(stdlib symbol)).

§

Func(FuncName)

upcase/downcase function item. Only usable as a sub target and only as Upcase/Downcase (the Ruby adapter raises on the rest).

§

Alias

Alias reference: map for dep_alias.name qualified refs.

Fields

§name: String
§

CaptureGroup

capture(…). id is the 1-based regex group number, assigned by the builder in lookaround assembly order (before, not_before, from, not_after, after).

Fields

§inner: Box<Item>
§

CaptureRef(usize)

ref(N) — backreference to the Nth capture group.

§

Maybe(Box<Item>)

maybe(…)

§

Some(Box<Item>)

some(…)

§

Range(char, char)

any(“lo”..“hi”) — inclusive codepoint range.

§

Set(Vec<Item>)

any(…) — char set / alternation list (entries may be nested Items: ranges, sets, primitives, alias refs).

§

Concat(Vec<Item>)

Concatenation (+ / whitespace joins). Also Item::Group.

Implementations§

Source§

impl Item

Source

pub fn concat_from_parts(parts: Vec<Item>) -> Item

Interscript::Node::Item::Group-style concatenation with flattening and None-elimination (Items::Concat.from_parts).

Source

pub fn first_string(&self) -> Item

first_string collapse (Ruby nth_string without the fiber selection): what this item yields as a single replacement string. Any → first entry; Range → lo. Alias/Prim/CaptureRef keep identity (resolved later, like build_item).

Source

pub fn max_length(&self) -> usize

max_length for the deterministic parallel sort. Primitives count as 1 (0 for none), mirroring Node::Item::Alias#max_length.

Trait Implementations§

Source§

impl Clone for Item

Source§

fn clone(&self) -> Self

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 Item

Source§

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

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

impl PartialEq for Item

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Item

Auto Trait Implementations§

§

impl Freeze for Item

§

impl RefUnwindSafe for Item

§

impl Send for Item

§

impl Sync for Item

§

impl Unpin for Item

§

impl UnsafeUnpin for Item

§

impl UnwindSafe for Item

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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 = !

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

fn try_from(value: U) -> Result<T, !>

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.