Crates.io | fast-str |
lib.rs | fast-str |
version | 1.0.0 |
source | src |
created_at | 2022-12-14 08:58:53.605386 |
updated_at | 2023-04-05 04:35:27.2909 |
description | A flexible, easy-to-use, immutable, efficient `String` replacement for Rust. |
homepage | |
repository | https://github.com/xxXyh1908/rust-fast-str |
max_upload_size | |
id | 736433 |
size | 157,757 |
FastStr: Optimized for map keys.
FastStr
FastStr
is a read-only string wrapper. You can think of it as an ownership &str
type.
FastStr uses three variants of &'static str
, Arc<String>
and StackString
, and automatically selects the best storage method;
And optimized string cloning and string comparison.
FastStr
is better than String as long as it is not often necessary to modify strings and connect strings.
String
constants are easily wrapped into the unified FastStr
type. For other string types, different types of storage will be automatically selected.
use fast_str::FastStr;
// compile-time constants
const EMPTY_STR: FastStr = FastStr::new();
const STATIC_STR: FastStr = FastStr::from_static("💙❤");
let str1: FastStr = "🍷 wink".into();
// String storage is used in 32-bit machines,
// and stack memory is used in 64 bit machines to store strings
let str2 = FastStr::from_ref("😆 Happy");
// You can use the operator '+' to connect strings.
let str3: FastStr = str1 + str2;
// O(1) Clone() of time complexity.
let str4: FastStr = str3.clone();
// You can use String as the storage variant of FastStr,
// and when FastStr has the sole ownership of the String variant,
// no performance consumption is converted to the String type.
let from_string = FastStr::from_string(String::from("hello world"));
let from_faststr = String::from(from_string);
fast-str
comes with optional support for the following crates through Cargo
feature flags. You can enable them in your Cargo.toml
file like this:
[dependencies]
fast-str = { version = "*", features = ["rocket", "serde"] }
Feature | Description |
---|---|
arbitrary |
Arbitrary implementation for [FastStr ]. |
actix-web |
Responder implementation for [FastStr ]. |
serde |
Serialize and Deserialize implementations for [FastStr ]. |
diffus |
Same and Deserialize implementations for [FastStr ]. |
Licensed under either of
at your option.