#string #shorthand #bisect #utf-8 #characters #multi-byte #split

str-shorthand

A Rust crate that provides utility functions for string manipulation. Includes a function to bisect a string into two halves, handling multi-byte UTF-8 characters correctly.

2 unstable releases

0.2.0 Jul 21, 2024
0.1.0 Jul 15, 2024

#5 in #multi-byte

Download history 80/week @ 2024-07-09 148/week @ 2024-07-16 39/week @ 2024-07-23 13/week @ 2024-07-30 10/week @ 2024-09-10 3/week @ 2024-09-17 13/week @ 2024-09-24 31/week @ 2024-10-01 1/week @ 2024-10-08

58 downloads per month

MIT license

6KB
65 lines

str-shorthand

str-shorthand is a Rust crate that provides utility functions for string manipulation. The initial version (0.1.0) includes a function to bisect a string into two halves, handling multi-byte UTF-8 characters correctly.

Features

  • Bisect Function: Automatically splits a string into two halves, ensuring UTF-8 safety and correctness.

Installation

Add str-shorthand to your Cargo.toml:

[dependencies]
str-shorthand = "0.1.0"

Then, include it in your project:

use str_shorthand::bisect;

Usage

The bisect function splits a string into two halves, ensuring correct handling of multi-byte UTF-8 characters.

Example

use str_shorthand::bisect;

fn main() {
    let text = "a😊bc😊";
    let (first_half, second_half) = bisect(text);
    println!("First half: {}", first_half); // Output: a😊b
    println!("Second half: {}", second_half); // Output: c😊
}

Functions

bisect

Splits a string into two halves.

Signature:

pub fn bisect(text: &str) -> (&str, &str)

Parameters:

text: A string slice to be split.

Returns:

A tuple containing the two halves of the input string.

Examples:

use str_shorthand::bisect;

let text = "abcdef";
let (first_half, second_half) = bisect(text);
assert_eq!(first_half, "abc");
assert_eq!(second_half, "def");

let text = "a😊b😊c";
let (first_half, second_half) = bisect(text);
assert_eq!(first_half, "a😊b");
assert_eq!(second_half, "😊c");

Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.

License

This project is licensed under the MIT License. See the LICENSE file for details.

No runtime deps