Writing user-friendly string functions: Practical Rust

Learn how to accept and return a variety of useful string types that are transparent to users of your functions. Additionally, save some memory allocations by using clone-on-write pointers.