Skip to main content

CowMut

Struct CowMut 

Source
pub struct CowMut;
Expand description

Copy-on-Write mutation patterns for safe AST manipulation.

These patterns ensure the original AST is never modified, making it safe to work with multiple “versions” of the code.

Implementations§

Source§

impl CowMut

Source

pub fn rename(ast: &RustAST, old: &str, new: &str) -> MutResult<RenameResult>

Apply a rename with Copy-on-Write semantics.

Returns a new AST, leaving the original unchanged.

Source

pub fn multi_rename( ast: &RustAST, renames: &[(&str, &str)], ) -> Vec<MutResult<RenameResult>>

Apply multiple independent renames, each producing a new AST.

Returns one result per rename operation.

Source

pub fn chain_renames( ast: &RustAST, renames: &[(&str, &str)], ) -> MutResult<Vec<RenameResult>>

Chain multiple renames on the same AST.

Each rename is applied sequentially to the result of the previous.

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