... all released!
- Consolidate
CompactString::new_inline(...)
andCompactString::from_static_str(...)
intoCompactString::const:new(...)
. Methods are currently marked as deprecated and will be removed inv0.9.0
.- Implemented in
Add const_new(); remove new_inline() and from_static_str()
- Implemented in
- Minimum supported Rust version (MSRV) was bumped to
v1.60
- Implemented in
fix: MSRV check and change MSRV to 1.60
- Implemented in
- Add support for
borsh
under an optional feature.- Implemented in
Add borsh support
- Implemented in
- Add additial
PartialEq
impls forCompactString
- Implemented in
fix: More PartialEq impls
- Implemented in
- Match alignment of internal
InlineBuffer
andRepr
.- Implemeneted in
Align InlineBuffer same as Repr
- Implemeneted in
- Fix conflict between
serde
andno_std
features.- Implemented in
fix serde no-std issue
- Implemented in
- Improve performance of
CompactString::is_empty
.- Implemented in
Simplify is_empty()
- Implemented in
- Implement additional
From
impls thatstd::string::String
has.- Implemented in
Add missing From impls that String has
- Implemented in
- Implement
Clone::clone_from
forCompactString
.- Implemented in
Impl Clone::clone_from for CompactString
- Implemented in
- Make re-allocations of a heap-based
CompactString
fallible.- Implemented in
Make (re)allocations fallible
- Implemented in
- Inline short
&'static str
s- Implemented in
Inline short static strings
- Implemented in
- Add support for serializing a
CompactString
fromdiesel
andsqlx
- Implemented in
Implement diesel compatibility
- Implemented in
Implement for sqlx
- Implemented in
... and everything from v0.8.0-beta
- Re-enabled specialization for
String
intrait ToCompactString
by upgrading tocastaway v0.2.3
- Implemented in
deps: Upgrade to castaway v0.2.3
- Implemented in
- Re-enable specialization for
String
intrait ToCompactString
, #304
- Support storing a
&'static str
in aCompactString
inO(1)
- Implemented in
feat: Support O(1) CompactString::from_static_str
- Implemented in
- Support
no_std
environments- Implemented in
support no_std
- Implemented in
- Add
repeat()
API toCompactString
- Implemented in
feat: Implement CompactString::repeat
- Implemented in
- Add
to_ascii_lowercase()
,to_ascii_uppercase()
,to_lowercase()
, andto_uppercase()
APIs toCompactString
- Implemented in
feat: Implement case conversion fn for CompactString
- Implemented in
- Add
from_str_to_lower(...)
andfrom_str_to_upper(...)
APIs toCompactString
- Implemented in
feat: Impl CompactString::from_str_to_{lower, upper}case
- Implemented in
- Improve the performance of the
CompactString::as_str()
API- Implemented in
Remove branches from Repr::as_slice()
- Implemented in
- Improve the performance of the
CompactString::len()
API- Implemented in
Simplify Repr::len()
- Implemented in
- Improve the performance of the
Clone
implementation forCompactString
- Implemented in
Simplify clone()
- Implemented in
- Improve the performance of some internal types.
- Implemented in
Fix and optimize Capacity
- Implemented in
- Open more niches for enum layout optimizations
- Implemented in
Open up more niches
- Implemented in
- Update MSRV to 1.59
- Implemented in
MSRV: Bump to 1.59
- Implemented in
- Improve the performance of the
ToCompactString
trait- Implemented in
fix: Don't count bytes in ToCompactString
- Implemented in
- Use the
-Zrandomize-layout
rustc
flag in CI- Implemented in
ci: Randomize Layout in CI
- Implemented in
- Change
as_ptr()
to require only&self
and not&mut self
- Implemented in
refactor: Change CompactString::as_ptr to take &self
- Implemented in
- Add
into_bytes()
method behind thesmallvec
feature which converts aCompactString
into a byte vector using aSmallVec
- Implemented in
api: Add CompactString::into_bytes
- Implemented in
- Add
from_string_buffer()
method which always re-uses the underlying buffer fromString
- Eagerly inline strings when
Clone
-ing aCompactString
- Implemented in
perf: Inline strings when Clone-ing
- Implemented in
- Updated
From<String>
andFrom<Box<str>>
to eagerly inline strings - Fix a typo in the documentation on
CompactString
- Implemented in
Fix a typo in documentation
- Implemented in
- Implement
AsRef<[u8]>
forCompactString
- Implemented in
impl AsRef<[u8]> for CompactString
- Implemented in
- Improve the performance of string and length access by using branchless instructions
- Implemented in
perf: Refactor underlying buffers for branchless access
- Implemented in
- Implement
From<CompactString> for Cow<'_, str>
- Implemented in
Implement From<CompactString> for Cow<'_, str>
- Implemented in
- Improve the performance of
CompactString::new_inline
- Implemented in
Copy inline string reversed
- Implemented in
- Implement more
FromIterator
andExtend
traits forCompactString
- Implemented in
Implement more FromIterator & Extend traits
- Implemented in
- Add
into_string()
method- Implemented in
Implement more FromIterator & Extend traits
- Implemented in
- Enable the
std
feature inproptest
to fix documentation on docs.rs- Implemented in
Enable "proptest/std" feature
- Implemented in
- Add
from_utf16_lossy()
,from_utf16be_lossy()
, andfrom_utf16le_lossy()
- Implemented in
feat: implement from_utf16_lossy API
- Implemented in
Implement from_utf16ne_lossy and from_utf16be_lossy
- Implemented in
- Add
from_utf16be()
andfrom_utf16le()
methods- Implemented in
Implement from_utf16le, from_utf16be, from_utf16ne
- Implemented in
- Implement
rkyv::Archive
,rkyv::Deserialize
, andrkyv::Serialize
forCompactString
- Implemented in
Add rkyv serialization
- Implemented in
- Improve performance when counting number of bytes to write into a
CompactString
- Implemented in
Don't format char to determine it's UTF-8 length
- Implemented in
- Improve macro hygiene for
format_compact!
macro- Implemented in
Macro hygiene: use re-exported format_args!()
- Implemented in
- Improve performance when a
CompactString
is allocated on the heap- Implemented in
#160 perf: Implement realloc for BoxString
- Implemented in
- Implement
markup::Render
trait- Implemented in
#157 Implement markup::Render trait and document features
- Implemented in
- Implement the
Arbitrary
trait fromarbitrary
,proptest
, andquickcheck
- Implemented in
146 feat: Implemented the Arbitrary trait from various crate
- Implemented in
- impl
From<CompactString>
forString
- Implemented in
#118 feat: add impl From<CompactString> for String
- Implemented in
- impl
AddAssign
(+=
) forCompactString
- Implemented in
add AddAssign operator
- Implemented in
- Add
from_utf8_lossy()
method- Implemented in
Implement from_utf8_lossy()
- Implemented in
- Add
from_utf8_unchecked()
method- Implemented in
feat: from_utf8_unchecked()
- Implemented in
- Add
retain()
method- Implemented in
Implement retain()
- Implemented in
- Add
remove()
method- Implemented in
feat: Implement CompactString::remove()
- Implemented in
- Add
from_utf16()
method- Implemented in
#170 feat: Implement CompactString::from_utf16
- Implemented in
- Add
split_off()
method- Implemented in
#154 Implement split_off()
- Implemented in
- Add
drain()
method- Implemented in
#153 Implement drain()
- Implemented in
- Add
clear()
method- Implemented in
#149 Implement clear()
- Implemented in
- Add
insert()
andinsert_str()
methods- Implemented in
#148 Implement insert() and insert_str()
- Implemented in
- Add
truncate()
method- Implemented in
#132 Implement truncate()
- Implemented in
- Add
replace_range()
method- Implemented in
#125 Implement replace_range()
- Implemented in
- Add
as_mut_str()
method- Implemented in
#124 Add as_mut_str() method
- Implemented in
- Fix error when creating
CompactString
with capacity16711422
on 32-bit archiectures- Implemented in
#161 fix: Test case discovered by AFL
- Backported in
#167 backport(v0.5): Test case discovered by AFL
- Implemented in
- Fix error when importing
compact_str
by change the existing Add<...> impls- Implemented in
#103 fix/feat: Change the existing Add<...> impls
- Backported
- Implemented in
- Add examples for
CompactStringExt
andToCompactString
traits, andformat_compact!(...)
macro - Remove potential bounds check when converting to &str
- Remove
CompactStr
type alias to prep forv0.5
, as the deprecation message noted- Implemented in
#110 chore: Remove CompactStr type alias
- Implemented in
- Add
CompactStringExt
which provides methods to join and concatenate collections into aCompactString
- Implemented in
#109 feat: CompactStringExt trait
- Implemented in
- Encode
CompactString
in such a way thatsize_of::<CompactString>() == size_of::<Option<CompactString>>()
- Implemented in
#105 perf: Option<CompactString> same size as CompactString
- Implemented in
#75: smol option
- Implemented in
#22 draft: Optimize Option<CompactStr> to be the same size as CompactStr
- Implemented in
- Update MSRV to 1.57
- impl
AsRef<OsStr>
forCompactStr
- Implemented in
#102 Impl AsRef<OsStr> for CompactString
- Implemented in
- Add
format_compact!
macro- Implemented in
#101 Add macro_rules format_compact!
- Implemented in
- Fix error when importing
compact_str
by change the existing Add<...> impls- Implemented in
#103 fix/feat: Change the existing Add<...> impls
- Backported
- Implemented in
- Rename
CompactStr
->CompactString
andToCompactStr
->ToComapctString
- Implemented in
#97 refactor: Rename CompactStr to CompactString
- Implemented in
- Improve performance of
ToCompactStr
by reducing copies for some specialized types- Implemented in
#95 perf: Reduce copies in ToCompactStr for integer types
- Implemented in
- Introduce the
ToCompactStr
trait, with specialized impls for common types- Implemented in
#16 Add && Impl new trait ToCompactStr
- Implemented in
- Improve the performance of
From<Cow<'_, str>>
- Implemented in
#90 Optimize From<Cow<'a, str>> impl for CompactStr
- Implemented in
- impl various
Add<T>
forCompactStr
, enabling concatination with+
Implemented in#81 impl a bunch of Add<T>s for CompactStr, and Add<CompactStr> for String
- Improved the performance of
Drop
for inlined strings - impl
fmt::Write
forCompactStr
- Implemented in
#73 Implement fmt::Write for CompactStr
- Implemented in
- Inline short heap strings when resizing. After enabling
O(1)
conversion fromString
andBox<str>
it became possible for short strings to be heap allocated. Now if we need to resize a short heap string, we'll inline it, instead of re-heap allocating.- Implemented in
#70 perf: Inline short heap strings when resizing
- Implemented in
- Enable
O(1)
conversion fromString
orBox<str>
toCompactStr
- Implemented in
#65 perf: Move Capacity onto the Stack
- Implemented in
- Update the README to remove references to "immutable".
CompactStr
became mutable withv0.3.0
- impl
Extend<Cow<str>>
forCompactStr
- Implemented in
#64 feature: impl Extend<Cow<'_, str>> for CompactStr
- Implemented in
- impl
From<Cow<str>>
forCompactStr
- Implemented in
#62 impl From<Cow<'_, str>> for CompactStr
- Implemented in
- Add
CompactStr::from_utf8(...)
API- Implemented in
#57 feature: Add from_utf8 API
- Implemented in
- Changed the heap variant from an atomically reference counted string, to a normal heap allocated string
- Implenented in
#56 feature: BoxString
- Note: This change was made after much deliberation and research into C++ strings and the performance of "copy on write" once mutation is introduced
- Implenented in
- Combined the Inline and Packed variants into one variant, store the discriminant in the last byte instead of first
- Implemented in
#49 refactor: Combine Inline and Packed Variants
- Note: This simplified the code, and improved the performance of inline string creation and modification
- Implemented in
- Removed all required dependencies from
ComapctStr
- Implemented in
#48 vendor: static-assertions
- Implemented in
- Add more public docs and doc tests for
CompactStr
- Implemented in
#46 chore: Add public documentation to CompactStr
- Implemented in
- Add
CompactStr::pop(...)
,CompactStr::push(...)
, andCompactStr::push_str(...)
APIs- Implemented in
#45 feature: impl the Extend trait for CompactStr
- Implemented in
- Implement the
Extend
trait forCompactStr
- Implemented in
#45 feature: impl the Extend trait for CompactStr
- Implemented in
- Add
bytes
feature toCompactStr
, includesfrom_utf8_buf*(...)
APIs- Implemented in
#40 feature: bytes
- Implemented in
- Add a
CompactStr::as_mut_slice(...)
API- Implemented in
#37 feature: as_mut_slice API
- Implemented in
- Add a
CompactStr::reserve(...)
API- Implemented in
#36 feature: reserve API
- Implemented in
- Improve CI, add workflows for MSRV, Miri, All Features, Fuzzing, Docs, and self-hosted ARMv7
- Implemented in
#26
,#32
,34
,#35
,#42
,#56
- Implemented in
- Change Minimum Supported Rust Version to 1.49
- Implemented in
#24 Make Minimum Supported Rust Version 1.49
- Implemented in
- Implement
FromIterator
forCompactStr
- Implemented in
#23 impl FromIterator<...> for CompactStr
- Implemented in
- impl
FromStr
forCompactStr
- Fixes
#18 Consider impl trait FromStr for CompactStr
- Implemented by
#20 impl FromStr for CompactStr
- Fixes
- Setting minimum supported Rust version (MSRV) to 1.56
- Fixes
#3 Document minimal supported Rust Version
- Implemented by
#17 Upgrade to Edition 2021 and mac MSRV 1.56
- Fixes
- Upgrade to Edition 2021
- impl
PartialEq
from more types - Add missing
#[inline]
and#[repr(C)]
annotations - Fix typos
- Avoid future incompatibilities with warnings
- Initial release!