| Linux | Windows | Coverage | Docs | Crates.io | Licence |
|:-------------------:|:-------------------:|:--------------------:|:---------------------:|:------------------:|:------------------:|
| |
|
| [![licence][11]][12 ] |
|
|
A string interning data structure that was designed for minimal memory overhead, fast access to the underlying interned strings and cache-efficient iteration through its contents.
This implementation uses a similar API as the string interner of the Rust compiler.
String internment is an efficient bi-directional mapping between strings and very cheap identifiers (symbols) that are used as representant for a certain string instead of the string itself.
Internally a hashmap and a vector is used. The vector stored the true contents of interned strings while the hashmap has internal references into the internal vector to avoid duplicates.
Safe abstraction wrapper that protects the user from the following misusage
Even more flexibility for input into the string interner
0.6.3
StringInterner
's Send
impl didn't respect its generic HashBuilder
parameter. Fixes GitHub issue #4.0.6.2
shrink_to_fit
public method to StringInterner
- (by artemshein)0.6.1
str
) was broken due to dangling pointers (Thanks to artemshein for fixing it!)0.6.0
PartialEq
implementation for StringInterner
StringInterner
generic over BuildHasher
to allow for custom hashers0.5.0
IntoIterator
trait implementation for StringInterner
0.4.0
Unsigned
for Symbol
0.3.3
Send
and Sync
to InternalStrRef
to make StringInterner
itself Send
and Sync