stringslice

Crates.iostringslice
lib.rsstringslice
version0.2.0
sourcesrc
created_at2021-03-17 03:25:02.346387
updated_at2024-01-01 16:19:05.098756
descriptionA collection of methods to slice strings based on character indices rather than bytes
homepage
repositoryhttps://github.com/staticintlucas/stringslice
max_upload_size
id370036
size26,062
Lucas Jansen (staticintlucas)

documentation

https://docs.rs/stringslice/

README

stringslice   Test statusTest coverageCrate versionRust version

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.

Features

  • Uses primitive &str and standard String types
  • #[no_std] compatible by default
  • Small footprint
    • ~50 LoC excluding blank lines, comments, and tests
    • No additional dependencies (only dev-dependencies)

Usage

Add stringslice to your Cargo.toml file:

[dependencies]
stringslice = "0.2"

Examples

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);

Licence

Licensed under either of

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.

Commit count: 14

cargo fmt