#string

string

A UTF-8 encoded string with configurable byte storage

8 releases

0.3.0 Dec 2, 2021
0.2.1 Jun 27, 2019
0.2.0 Mar 6, 2019
0.1.3 Jan 10, 2019
0.0.0 Jul 25, 2017

#307 in Data structures

Download history 20994/week @ 2022-12-07 17185/week @ 2022-12-14 14536/week @ 2022-12-21 11912/week @ 2022-12-28 16702/week @ 2023-01-04 18020/week @ 2023-01-11 22146/week @ 2023-01-18 22893/week @ 2023-01-25 22888/week @ 2023-02-01 22872/week @ 2023-02-08 23764/week @ 2023-02-15 34203/week @ 2023-02-22 25268/week @ 2023-03-01 22246/week @ 2023-03-08 20607/week @ 2023-03-15 15227/week @ 2023-03-22

91,325 downloads per month
Used in 1,216 crates (2 directly)

MIT license

12KB
166 lines

String

A UTF-8 encoded string with configurable byte storage.

Build Status License: MIT Crates.io Documentation

Usage

To use string, first add this to your Cargo.toml:

[dependencies]
string = "0.3.0"

Next, add this to your crate:

extern crate string;

use string::{String, TryFrom};

let s: String<[u8; 2]> = String::try_from([b'h', b'i']).unwrap();
assert_eq!(&s[..], "hi");

See documentation for more details.


lib.rs:

A UTF-8 encoded string with configurable byte storage.

This crate provides String, a type similar to its std counterpart, but with one significant difference: the underlying byte storage is configurable. In other words, String<T> is a marker type wrapping T, indicating that it represents a UTF-8 encoded string.

For example, one can represent small strings (stack allocated) by wrapping an array:

# use string::*;
let s: String<[u8; 2]> = String::try_from([b'h', b'i']).unwrap();
assert_eq!(&s[..], "hi");

Dependencies

~170KB