string_more

Trait StringExt

Source
pub trait StringExt: StrExt {
    // Required methods
    fn set(&mut self, s: &str);
    fn trim_start_in_place(&mut self);
    fn trim_end_in_place(&mut self);
    fn trim_in_place(&mut self);
    fn fill_start_in_place(&mut self, fill: impl EncodeUtf8, times: usize);
    fn fill_end_in_place(&mut self, fill: impl EncodeUtf8, times: usize);
    fn center_in_place(&mut self, fill: impl EncodeUtf8, times: usize);
    fn enclose_in_place(
        &mut self,
        fill_start: impl EncodeUtf8,
        fill_end: impl EncodeUtf8,
    );
    fn expand_tabs_in_place(&mut self, tabsize: usize);
    fn shift_in_place(
        &mut self,
        index: usize,
        count: usize,
        fill: impl EncodeUtf8,
    );
    fn replace_in_place(&mut self, from: impl EncodeUtf8, to: impl EncodeUtf8);
}
Expand description

The StringExt trait extends String with advanced in-place manipulation methods, enabling modifications without creating new String instances.

This trait provides methods for in-place transformations that are useful for managing and formatting string content in a more efficient way. These methods are counterparts to the immutable methods in StrExt, adapted for use with mutable String values.

Each method provides direct, in-place modification, optimizing performance by avoiding additional allocations for tasks such as padding, trimming, and shifting characters within the String.

§Examples

use string_more::StringExt;

let mut example = String::from(" example ");
example.trim_in_place();
assert_eq!(example, "example");
example.fill_end_in_place("-", 3);
assert_eq!(example, "example---");

Required Methods§

Source

fn set(&mut self, s: &str)

Replaces the contents of the String with the provided string slice s, clearing any previous content.

Source

fn trim_start_in_place(&mut self)

Removes any leading whitespace from the String in-place, modifying the existing instance.

Source

fn trim_end_in_place(&mut self)

Removes any trailing whitespace from the String in-place, modifying the existing instance.

Source

fn trim_in_place(&mut self)

Removes both leading and trailing whitespace from the String in-place.

Source

fn fill_start_in_place(&mut self, fill: impl EncodeUtf8, times: usize)

Prepends the specified fill to the String, repeating it times times, modifying the existing instance.

Source

fn fill_end_in_place(&mut self, fill: impl EncodeUtf8, times: usize)

Appends the specified fill to the String, repeating it times times, modifying the existing instance.

Source

fn center_in_place(&mut self, fill: impl EncodeUtf8, times: usize)

Centers the String by padding both the beginning and end with fill, repeating times times for balanced padding, modifying the existing instance.

Source

fn enclose_in_place( &mut self, fill_start: impl EncodeUtf8, fill_end: impl EncodeUtf8, )

Adds fill_start to the beginning and fill_end to the end of the String, modifying the existing instance.

Source

fn expand_tabs_in_place(&mut self, tabsize: usize)

Expands all tab characters (\t) within the String, replacing each tab with tabsize spaces in-place.

Source

fn shift_in_place(&mut self, index: usize, count: usize, fill: impl EncodeUtf8)

Shifts the characters starting at the specified index by count positions, filling the resulting gap with fill, modifying the existing instance.

§Panics

Panics if the index do not lie on a char boundary, or if it is out of bounds.

Source

fn replace_in_place(&mut self, from: impl EncodeUtf8, to: impl EncodeUtf8)

Replaces all occurrences of a specified substring with another substring in the String, modifying it in place.

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 StringExt for String

Source§

fn set(&mut self, s: &str)

Source§

fn trim_start_in_place(&mut self)

Source§

fn trim_end_in_place(&mut self)

Source§

fn trim_in_place(&mut self)

Source§

fn fill_start_in_place(&mut self, fill: impl EncodeUtf8, times: usize)

Source§

fn fill_end_in_place(&mut self, fill: impl EncodeUtf8, times: usize)

Source§

fn center_in_place(&mut self, fill: impl EncodeUtf8, times: usize)

Source§

fn enclose_in_place( &mut self, fill_start: impl EncodeUtf8, fill_end: impl EncodeUtf8, )

Source§

fn expand_tabs_in_place(&mut self, tabsize: usize)

Source§

fn shift_in_place(&mut self, index: usize, count: usize, fill: impl EncodeUtf8)

Source§

fn replace_in_place(&mut self, from: impl EncodeUtf8, to: impl EncodeUtf8)

Implementors§