This library defines strings with copy-on-write semantics.
CowStr
Is a String that can be initialized to a static string or be build dynamically. Its contents can then be immutably shared. When mutation is required the string will be copied first.
CowStr implements many of the std::String methods. Missing methods will be added as required,
PR's are welcome.
SubStr
Refers to an immutable slice inside of a CowStr. This resembles the &str/String
relationship.
Features
- singlethreaded uses a simpler
Cellbased reference counter. Default is an atomic reference counter. When in in doubt keep the default, esp for libraries, atomics on x86 have no performance impact. The 'singlethreaded' variant should only be used for applications that are designed to be single threaded and shall run on architectures where atomics are more expensive.