Struct ClassSetUnion

pub struct ClassSetUnion { pub span: Span, pub items: Vec<ClassSetItem> }

A union of items inside a character class set.

Fields

span: Span

The span of the items in this operation. e.g., the a-z0-9 in [^a-z0-9]

items: Vec<ClassSetItem>

The sequence of items that make up this union.

Implementations

impl ClassSetUnion

fn push(&mut self, item: ClassSetItem)

Push a new item in this union.

The ending position of this union's span is updated to the ending position of the span of the item given. If the union is empty, then the starting position of this union is set to the starting position of this item.

In other words, if you only use this method to add items to a union and you set the spans on each item correctly, then you should never need to adjust the span of the union directly.

fn into_item(self) -> ClassSetItem

Return this union as a character class set item.

If this union contains zero items, then an empty union is returned. If this concatenation contains exactly 1 item, then the corresponding item is returned. Otherwise, ClassSetItem::Union is returned.

Trait Implementations

impl Clone for ClassSetUnion

fn clone(&self) -> Self

impl Debug for ClassSetUnion

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

impl Eq for ClassSetUnion

impl PartialEq for ClassSetUnion

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

impl StructuralPartialEq for ClassSetUnion

Auto Trait Implementations

impl Freeze for ClassSetUnion

impl RefUnwindSafe for ClassSetUnion

impl Send for ClassSetUnion

impl Sync for ClassSetUnion

impl Unpin for ClassSetUnion

impl UnsafeUnpin for ClassSetUnion

impl UnwindSafe for ClassSetUnion

Blanket Implementations

impl<T> Any for ClassSetUnion where T: 'static + ?Sized,

fn type_id(&self) -> TypeId

impl<T> Borrow<T> for ClassSetUnion where T: ?Sized,

fn borrow(&self) -> &T

impl<T> BorrowMut<T> for ClassSetUnion where T: ?Sized,

fn borrow_mut(&mut self) -> &mut T

impl<T> CloneToUninit for ClassSetUnion where T: Clone,

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

impl<T> From<T> for ClassSetUnion

fn from(t: T) -> T

Returns the argument unchanged.

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

type Owned = T;
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)

impl<T, U> Into<U> for ClassSetUnion where U: From<T>,

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom<U> for ClassSetUnion where U: Into<T>,

type Error = never;
fn try_from(value: U) -> Result<T, never>

impl<T, U> TryInto<U> for ClassSetUnion where U: TryFrom<T>,

type Error = <U as TryFrom<T>>::Error;
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>