tinyvec
based string types.
tinyvec_string
provides two string types:
ArrayString
, a string backed by a fixed-size array on the stack, usingArrayVec
TinyString
, a string backed by either a fixed-size array on the stack or aVec
on the heap
Like tinyvec
, tinyvec_string
is no_std
by default.
ArrayString
has no dependencies (other than tinyvec
and core
).
TinyString
requires the the alloc
cargo feature to be enabled because
it has a dependency on alloc
:
[dependencies]
tinyvec_string = { version = "0.3.2", features = ["alloc"] }
Error types implement std::error::Error
when the std
feature is
enabled.
The rustc_1_40
feature enables tinyvec
's rustc_1_40
feature, which enables
some optimizations for Rust versions >= 1.40.
The rustc_1_55
feature enables usage of const generics to allow usage of
backing arrays of any size.
The rustc_1_57
feature enables TinyString::try_reserve
and
TinyString::try_reserve_exact
.
This crate strives to be as safe as possible. Almost all internal unsafe
code is copied verbatim from std
's String
implementation for maximum
reliability and performance.
Like tinyvec
, tinyvec_string
(without rustc
version features) supports
Rust 1.34+. The alloc
feature requires Rust 1.36+.
Feel free to open an issue if you have a problem, or open a pull request if you have a solution. Also feel free to reach me on the Rust Community Discord Server @ThatsNoMoon#0175.
tinyvec_string
is dual-licensed under Apache-2.0 and MIT. Large sections of
code, documentation, and tests were copied verbatim or copied and modified from
rust-lang/rust; copyright for such content
belongs to the original author.