https://github.com/floating-floaties/string-utility
Provides simple substring implementation (with the RangeBound trait), keep string before or after a specified string, etc.
https://github.com/floating-floaties/string-utility
keep-after keep-before range range-bound rust strings substring substring-trait trait
Last synced: 2 months ago
JSON representation
Provides simple substring implementation (with the RangeBound trait), keep string before or after a specified string, etc.
- Host: GitHub
- URL: https://github.com/floating-floaties/string-utility
- Owner: floating-floaties
- License: gpl-3.0
- Created: 2022-10-09T02:59:02.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-14T08:44:17.000Z (12 months ago)
- Last Synced: 2025-09-27T02:28:41.630Z (5 months ago)
- Topics: keep-after, keep-before, range, range-bound, rust, strings, substring, substring-trait, trait
- Language: Rust
- Homepage: https://crates.io/crates/string-utility
- Size: 32.2 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Simple Substring Trait
* [Simple Substring Trait](#simple-substring-trait)
* [Install](#install)
* [Usage](#usage)
* [Substring](#substring)
* [Keep](#keep)
## Install
Add the following line to your Cargo.toml file (under `[dependencies]`):
```toml
string-utility = "0.2"
```
## Usage
### Import all Traits
```rust
use string_utility::prelude::*;
```
### Substring
```rust
use string_utility::prelude::*;
fn main() {
let some_text = "42Hello, world!".to_string();
// cut first two chars
let result = some_text.substring(2..);
let expected = "Hello, world!";
assert_eq!(result, expected);
// extract world string
let result = some_text.substring(9..=13);
let expected = "world";
assert_eq!(result, expected);
// keep everything up to (including) idx 13
let result = some_text.substring(..=13);
let expected = "42Hello, world";
assert_eq!(result, expected);
// keep everything up to (excluding) idx 13
let result = some_text.substring(..13);
let expected = "42Hello, worl";
assert_eq!(result, expected);
// keep everything
let result = some_text.substring(..);
let expected = "42Hello, world!";
assert_eq!(result, expected);
// get last char
let result = some_text.substring(some_text.len()-1..);
let expected = "!";
assert_eq!(result, expected);
// get last char
let result = some_text.substring_len(1); // same as (len - 1)..usize::MAX
let expected = "!";
assert_eq!(result, expected);
}
```
### Keep
All functions: [trait def](https://docs.rs/string-utility/0.2.0/string_utility/trait.StringKeeperExt.html)
```rust
use string_utility::prelude::*;
fn main() {
let some_text = "some start value, some not-so-start value".to_string();
let result = some_text
.keep("start".to_string()) // keep(pattern)
// from the
.end_of_string()
// whether to keep the pattern "start"
.excluding_pattern()
// keep everything before the pattern
.before_pattern()
// exec
.to_string();
let expected = "some start value, some not-so-";
assert_eq!(result, expected);
}
```