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