TOC Prev Next

JSON Sugar and other Goodness

β€œRaw” Strings

CUE does not support raw strings in the strictest sense. Instead it allows modifying the escape delimiter by requiring an arbitrary number of hash # signs after the backslash by enclosing a string literal in an equal number of hash signs on either end.

This works for normal and interpolated strings. Quotes do not have to be escaped in such strings.

stringraw.cue:

msg1: #"The sequence "\U0001F604" renders as \#U0001F604."#

msg2: ##"""
    A regular expression can conveniently be written as:

        #"\d{3}"#

    This construct works for bytes, strings and their
    multi-line variants.
    """##

$ cue eval stringraw.cue

{
    msg1: "The sequence \"\\U0001F604\" renders as πŸ˜„."
    msg2: """
        A regular expression can conveniently be written as:
        
            #\"\\d{3}\"#
        
        This construct works for bytes, strings and their
        multi-line variants.
        """
}