Expand description
An immutable, clone-cheap UTF-8 value for latency-sensitive systems.
CheetahString has one constructor-independent value contract:
- values up to 23 bytes are stored inline;
- static values borrow their
&'static str; - other long values use a shared
Arc<str>backing.
Long clones are bounded O(1) and allocate zero times. Append-heavy
construction belongs to CheetahBuilder; call
CheetahBuilder::finish to freeze the value or
CheetahBuilder::into_string when mutation or spare capacity must
continue. from_string freezes its input and does not retain a mutable
String representation.
The crate supports no_std + alloc. Optional serde integration preserves
the text contract, while the bytes feature exposes [CheetahBytes] for
byte-oriented data. Byte-to-text conversion validates and copies; only
bytes::Bytes <-> CheetahBytes is zero-copy.
§Split capability
CheetahString::split_char returns a double-ended standard iterator.
CheetahString::split_str is forward-only, so unsupported reverse
iteration fails at compile time rather than panicking at runtime.
§Search and experimental SIMD
Stable builds delegate equality, prefix, and suffix comparisons to the
standard slice/str implementations so the compiler and standard library
select the best portable strategy. The experimental-simd feature exposes
an x86_64 SSE2 experiment for controlled benchmarking only. The deprecated
simd feature remains an alpha compatibility alias.
Substring search through find() and contains() continues to use
memchr/memmem, which is the stable default search backend.
To opt into the isolated experiment:
[dependencies]
cheetah-string = { version = "=3.0.0-alpha.1", features = ["experimental-simd"] }§Example
use cheetah_string::{CheetahBuilder, CheetahString};
let topic = CheetahString::from_static_str("orders");
assert!(topic.starts_with("ord"));
let mut builder = CheetahBuilder::with_capacity(32);
builder.push_str(topic.as_str());
builder.push('@');
builder.push_str("group-a");
let route = builder.finish();
assert_eq!(route, "orders@group-a");Structs§
- Cheetah
Builder - Append-heavy builder for constructing Cheetah string values.
- Cheetah
Finder - Reusable substring finder for repeated searches with the same needle.
- Cheetah
String - Immutable string value with inline, static, or shared backing.
- Split
Str - Helper struct for splitting strings by a string pattern.
Enums§
- Error
- Errors that can occur during CheetahString operations
Traits§
- Split
Pattern - A compatibility pattern whose iterator type exposes its capabilities.
- StrPattern
- A pattern that can be used with
starts_withandends_withmethods.
Type Aliases§
- Cheetah
Str Deprecated - Deprecated v3 compatibility name for
CheetahString. - Result
- Result type for CheetahString operations