A collection of methods to slice strings based on character indices rather than bytes.
This crate implements the StringSlice
trait for &str
,
containing the slice
, try_slice
, substring
, and try_substring
methods.
- Uses primitive
&str
and standardString
types #[no_std]
compatible by default- Small footprint
- ~50 LoC excluding blank lines, comments, and tests
- No additional dependencies (only dev-dependencies)
Add stringslice
to your Cargo.toml
file:
[dependencies]
stringslice = "0.2"
The slice
method can be used to slice a &str
.
use stringslice::StringSlice;
assert_eq!("Ùníc😎de".slice(4..5), "😎");
assert_eq!("世界こんにちは".slice(2..), "こんにちは");
The substring
method is provided for convenience and accepts
separate parameters for the start and end of the slice.
use stringslice::StringSlice;
assert_eq!("Γεια σου κόσμε".substring(9, 14), "κόσμε");
There are also equivalent try_slice
and try_substring
methods
which return None
for invalid input.
use stringslice::StringSlice;
assert_eq!("string".try_slice(4..2), None);
Licensed under either of
- Apache License, Version 2.0 (LICENCE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENCE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.