smol_str

Longer than 22 bytes, but substrings of WS (see src/lib.rs). Such strings consist
solely of consecutive newlines, followed by consecutive spaces

If a string does not satisfy the aforementioned conditions, it is heap-allocated

Unlike String, however, SmolStr is immutable. The primary use case for
SmolStr is a good enough default storage for tokens of typical programming
languages. Strings consisting of a series of newlines, followed by a series of
whitespace are a typical pattern in computer programs because of indentation.
Note that a specialized interner might be a better solution for some use cases.