Thread overview
compute from a string the text of a string literal
January 17

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?

January 17

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"
}
January 17

On Wednesday, 17 January 2024 at 18:53:48 UTC, Paul Backus wrote:

>

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"
}

Great! I'll use that!