Trait Transform

Source
pub trait Transform {
    // Required method
    fn transform(
        &self,
        transform_next: impl FnMut(&mut &str) -> TransformedPart,
    ) -> Cow<'_, String, str>;
}
Expand description

Helper trait to call transform as method on &str.

§Example

use cervine::Cow;
use gnaw::Unshift as _;
use lazy_transform_str::{Transform as _, TransformedPart};
use smartstring::alias::String;

let input = r#"a "quoted" word"#;

// Escape double quotes
let output = input.transform(|rest| match rest.unshift().unwrap() {
    c @ '\\' | c @ '"' => {
        let mut changed = String::from(r"\");
        changed.push(c);
        TransformedPart::Changed(changed)
    }
    _ => TransformedPart::Unchanged,
});

assert_eq!(output, Cow::Owned(r#"a \"quoted\" word"#.into()));

Required Methods§

Source

fn transform( &self, transform_next: impl FnMut(&mut &str) -> TransformedPart, ) -> Cow<'_, String, str>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Transform for str

Source§

fn transform( &self, transform_next: impl FnMut(&mut &str) -> TransformedPart, ) -> Cow<'_, String, str>

Implementors§