12 releases (7 breaking)

0.7.0 Nov 2, 2020
0.6.0 Nov 1, 2020
0.5.1 Oct 31, 2020
0.4.0 Oct 28, 2020
0.0.0 Oct 20, 2020

#1764 in Rust patterns

33 downloads per month

MIT license

70KB
2K SLoC

Global string intern pool

Rust version documentation LICENSE

Internal use of DashMap for concurrent support

Examples

use pstr::IStr;
let s = IStr::new("hello world");
use pstr::MowStr;
let mut s = MowStr::new("hello");
assert!(s.is_interned());

s.push_str(" ");
assert!(s.is_mutable());

s.mutdown().push_str("world");
assert_eq!(s, "hello world");

s.intern();
assert!(s.is_interned());

lib.rs:

Global string intern pool

Internal use of DashMap for concurrent support

Examples

use pstr::IStr;
let s = IStr::new("hello world");
use pstr::MowStr;
let mut s = MowStr::new("hello");
assert!(s.is_interned());

s.push_str(" ");
assert!(s.is_mutable());

s.mutdown().push_str("world");
assert_eq!(s, "hello world");

s.intern();
assert!(s.is_interned());

Dependencies

~395KB