Skip to main content

Replace

Struct Replace 

Source
pub struct Replace<A, B, C> {
    pub source: A,
    pub needle: B,
    pub replacement: C,
}
Expand description

A Writeable adapter that replaces occurrences of a needle with a replacement.

This adapter performs the replacement in a streaming fashion during write_to, requiring zero allocations.

§Examples

use writeable::adapters::Replace;
use writeable::assert_writeable_eq;
use writeable::concat_writeable;

let source = concat_writeable!("I 💖 🦀", " and 🦀 loves me!");
let replace = Replace {
    source,
    needle: "🦀",
    replacement: "Rust",
};

assert_writeable_eq!(replace, "I 💖 Rust and Rust loves me!");

Fields§

§source: A

The source writeable.

§needle: B

The needle to search for.

§replacement: C

The replacement writeable.

Implementations§

Source§

impl<'a, A: Writeable, C: Writeable> Replace<A, &'a str, C>

Source

pub fn to_string(&self) -> String

Converts the given value to a String.

Under the hood, this uses an efficient Writeable implementation.

If you don’t need an allocated String, but e.g. need to write this to some sink, it is more efficient to use Writeable directly.

Trait Implementations§

Source§

impl<A: Debug, B: Debug, C: Debug> Debug for Replace<A, B, C>

Source§

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

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

impl<'a, A: Writeable, C: Writeable> Display for Replace<A, &'a str, C>

This trait is implemented for compatibility with fmt!. To create a string, Writeable::write_to_string is usually more efficient.

Source§

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

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

impl<A, C> Writeable for Replace<A, &str, C>
where A: Writeable, C: Writeable,

Source§

fn write_to<W: Write + ?Sized>(&self, sink: &mut W) -> Result

Writes a string to the given sink. Errors from the sink are bubbled up. The default implementation delegates to write_to_parts, and discards any Part annotations.
Source§

fn writeable_length_hint(&self) -> LengthHint

Returns a hint for the number of UTF-8 bytes that will be written to the sink. Read more
Source§

fn write_to_parts<S: PartsWrite + ?Sized>(&self, sink: &mut S) -> Result

Write bytes and Part annotations to the given sink. Errors from the sink are bubbled up. The default implementation delegates to write_to, and doesn’t produce any Part annotations.
Source§

fn writeable_borrow(&self) -> Option<&str>

Returns a &str that matches the output of write_to, if possible. Read more
Source§

fn write_to_string(&self) -> Cow<'_, str>

Creates a new string with the data from this Writeable. Read more

Auto Trait Implementations§

§

impl<A, B, C> Freeze for Replace<A, B, C>
where A: Freeze, B: Freeze, C: Freeze,

§

impl<A, B, C> RefUnwindSafe for Replace<A, B, C>

§

impl<A, B, C> Send for Replace<A, B, C>
where A: Send, B: Send, C: Send,

§

impl<A, B, C> Sync for Replace<A, B, C>
where A: Sync, B: Sync, C: Sync,

§

impl<A, B, C> Unpin for Replace<A, B, C>
where A: Unpin, B: Unpin, C: Unpin,

§

impl<A, B, C> UnsafeUnpin for Replace<A, B, C>

§

impl<A, B, C> UnwindSafe for Replace<A, B, C>
where A: UnwindSafe, B: UnwindSafe, C: UnwindSafe,

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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
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.