The ergonomic difficulties that come from using Substring are not new. The responses in this thread summarise the situation well, and why it is the way it is: Swift is still sometimes so cumbersome - #4 by Ben_Cohen
But those responses do convince me that sharing should be expressed as a Substring
by default. Maybe we could add a separate API on String
for taking ownership of (not sharing) an external buffer?