Expand description
§mut-str
A toolkit for working with mutable string slices (&mut str), and immutable ones too!
Pretty much all you can do safely in the standard library with mutable string slices is make them lower or upper case. This package allows for splitting and slicing by character index (rather than byte index), replacing strings and using references to characters.
All functions on string slices are available either at the package root or as methods on the StrExt trait.
use mut_str::StrExt;
let mut welcome = Box::<str>::from("Hello, World!");
// Split by character index
let (l, r) = welcome.char_split_at_mut(7).unwrap();
assert_eq!(l, "Hello, ");
assert_eq!(r, "World!");
// Replace string slices
l.replace_with("mut-str").unwrap();
assert_eq!(l, "mut-str");
// Replace with padding
let sub = r.replace_with_pad_left_char("👑!", ' ').unwrap();
assert_eq!(sub, "👑!");
assert_eq!(r, " 👑!");
assert_eq!(&*welcome, "mut-str 👑!");
// Get character references
let crown = welcome.get_char_mut(8).unwrap();
assert_eq!(crown, '👑');
// Mutate characters
crown.replace('🌍').unwrap();
assert_eq!(crown, '🌍');
// Slice by character index
let l = welcome.char_slice_mut(..7).unwrap();
l.replace_with_pad_left_space("👋").unwrap();
assert_eq!(&*welcome, " 👋 🌍!");§Links
Latest version of mut-str on crates.io
This version of mut-str on crates.io
mut-str on GitHub
§Features
alloc(enabled by default) adds implementations that require thealloclibrary.std(enabled by default, requiresalloc) adds implementations specific to the standard library.
To make this package no-std compatible, disable the std feature.
cargo add mut-str --no-default-features
cargo add mut-str --no-default-features --features=alloc
§License
mut-str is dual-licensed under either the Apache License Version 2.0 or MIT license at your option.
Modules§
- Errors.
- Iterators over UTF-8 character references.
Structs§
- A UTF-8 encoded character.
- An owned
Char.
Traits§
- The
StrExttrait adds some methods to string types, many of which operate on character indexes and with character references.
Functions§
- Slice a
strin units of UTF-8 characters. - Slice a mutable
strin units of UTF-8 characters. - Split a
strin units of UTF-8 characters. - Split a mutable
strin units of UTF-8 characters. - Get a character reference from a
strand an index. - Get a mutable character reference from a mutable
strand an index. - Replace the
strwith another of the same length. - Replace the
strwith another of the same length or shorter. The remaining bytes will be filled withpad. - Replace the
strwith another of the same length or shorter. The remaining bytes will be filled withpad, which must be one byte long. - Replace the
strwith another of the same length or shorter. The remaining bytes will be filled with spaces.