Expand description
Substring method for string types.
This crate provides a substring()
method on Rust string types. The method takes a start and
end character index and returns a string slice of the characters within that range.
The method is provided via the Substring
trait which is implemented on the str
primitive.
§Example
use substring::Substring;
// Works on a string slice.
assert_eq!("foobar".substring(2,5), "oba");
// Also works on a String.
assert_eq!("foobar".to_string().substring(1,6), "oobar");
As Rust strings are UTF-8 encoded, the algorithm for finding a character substring is O(n)
,
where n
is the byte length of the string. This is due to characters not being of predictible
byte lengths.
§Note
The indexing of substrings is based on Unicode Scalar Value. As such, substrings may not always match your intuition:
use substring::Substring;
assert_eq!("ã".substring(0, 1), "a"); // As opposed to "ã".
assert_eq!("ã".substring(1, 2), "\u{0303}")
The above example occurs because “ã” is technically made up of two UTF-8 scalar values.
Traits§
- Provides a
substring()
method.