Expand description
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 a (immutable) span inside a CowStr.
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.
Structs
A shared string that can be either static or dynamic with copy-on-write semantic.
Functions that do copy-on-write are marked as copy-on-write below.
Tried to use a range larger than the string it should cover.
Arbitrary immutable text as span from some shared string