Skip to content

A substring method for string types.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

Anders429/substring

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

substring

GitHub Workflow Status codecov.io crates.io docs.rs MSRV License

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 containing the characters within that range.

The method is provided via the Substring trait which is implemented on the str primitive.

Usage

To use this crate, simply bring the Substring trait into scope and call the substring method on your string types.

use substring::Substring;

assert_eq!("hello, world!".substring(7, 12), "world");

Note that 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: the letter "a" and a combining tilde.

Performance

As Rust strings are UTF-8 encoded, the algorithm for finding a character substring has temporal complexity O(n), where n is the byte length of the string. This is due to characters not being of predictible byte lengths.

Minimum Supported Rust Version

This crate is guaranteed to compile on stable rustc 1.0.0 and up.

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

A substring method for string types.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages