A data structure to efficiently intern, cache and restore strings.
hashbrown
version 0.14.0
. (https://github.com/Robbepop/string-interner/pull/58)no_std
support. (https://github.com/Robbepop/string-interner/pull/44)BufferBackend::with_capacity
method. (https://github.com/Robbepop/string-interner/pull/54)BufferBackend
string interner backend.
string_interner
crate now uses the Rust 2021 edition.DefaultBackend
now is the StringBackend
and no longer the BucketBackend
.S
symbol parameter of all string interner backends
now defaults to the DefaultSymbol
.Backend
trait is no longer generic over a symbol S
but instead
has a Symbol
associated type now.StringInterner
no longer has a generic S
symbol parameter and
now instead uses the Symbol
associated type from its used backend B
.memory_consumption
tests now shrink the string interners before querying
their memory consumption. This yields more stable numbers than before.memory_consumption
test now also tests the total amount of allocations
and deallocations made by the string interner backends.README
section about benchmarking the crate.Update hashbrown
dependency from version 0.9
to version 0.11
.
Add shrink_to_fit
method to StringInterner
via backend. (#36)
Add support more than 4G of interned strings with StringBackend
. (#37)
Remove S: Symbol
trait bound from interner backends.
Remove S: Symbol
trait bound from Clone impl
for StringBackend
.
Reworked the memory and allocation tests
cargo test -- --test-threads 1
CI now tests the whole build for windows, linux (ubuntu) and macos.
Add cargo-audit
and cargo-outdated
checks to CI pipeline.
Remove no longer needed jemalloc
dev-dependency
.
StringInterner
can still look up the same symbols.
#34 (Thanks @alamb)
BuildHasher: Clone
trait bound for StringInterner
's Clone
impl.BucketBackend
now implements Send
+ Sync
.hashbrown 0.8
-> 0.9
cfg-if 0.1
-> 1.0