| |
![Paul Backus's Gravatar profile Gravatar of Paul Backus](//www.gravatar.com/avatar/90b2b8ae65091e8b6a2cdbcd9d312e26?d=identicon&s=32) | Posted by Paul Backus in reply to Carl Sturtivant | Permalink Reply |
|
Paul Backus ![Paul Backus's Gravatar profile Gravatar of Paul Backus](//www.gravatar.com/avatar/90b2b8ae65091e8b6a2cdbcd9d312e26?d=identicon&s=80)
Posted in reply to Carl Sturtivant
| On Wednesday, 17 January 2024 at 18:44:14 UTC, Carl Sturtivant wrote:
> Hello,
I'd like a function like this,
string image(string s)
that maps any string s into the doubly quoted backslash escaped text that would be a string literal for s were it pasted into a program. Perhaps with a second parameter with detailed options.
Is there something out there I could use?
There's a function that does this in Phobos, but it's private . Currently, the only way to access it is by calling to!string or format on a range that contains the string you want to convert as an element:
void main()
{
import std.range, std.conv, std.stdio;
string s = `"foo"\bar`;
string escaped = only(s).to!string[1 .. $-1]; // slice off [ and ]
writeln(escaped); // "\"foo\"\\bar"
}
|