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 `Cell` based 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.