any-intern
any-intern is a Rust crate for efficient interning of values. It provides flexible interners for
various use cases, ensuring that each unique value is stored only once, saving memory and improving
lookup efficiency.
Examples
Interner
A generic interner for storing and deduplicating values of various types.
use Interner;
;
;
let interner = new;
// Interning static types
let a1 = interner.intern_static;
let a2 = interner.intern_static;
let b1 = interner.intern_static;
assert_eq!; // Same value, same reference
assert_ne!; // Different value, different reference
// Interning `Dropless` types
let s1 = interner.intern_dropless;
let s2 = interner.intern_dropless;
assert_eq!; // Same string, same reference
// Interning `Display` types as formatted string
let f1 = interner.intern_formatted_str.unwrap;
assert_eq!;
AnyInterner
A type-erased interner for storing and deduplicating values of a single type.
use AnyInterner;
;
let interner = ;
unsafe
DroplessInterner
An interner for storing and deduplicating values without requiring ownership.
use DroplessInterner;
let interner = new;
let hello = interner.intern;
let another_hello = interner.intern;
assert_eq!; // Same value, same reference