Heredocs are primarily intended for multiline strings. Raw strings are intended for strings that have no escapes. Raw strings typically allow newlines, but that is not their primary purpose (and in Rust, regular strings allow newlines anyway). Trying to use a heredoc syntax for raw strings is just a headache (because of indentation, and dealing with the first and/or trailing newline in the heredoc).
-Kevin On Sep 22, 2013, at 11:52 AM, Artem Egorkine <art...@gmail.com> wrote: > I must be missing something about ruby heredocs, but the indentation had > always been a painful question about them ( > http://stackoverflow.com/questions/3772864/how-do-i-remove-leading-whitespace-chars-from-ruby-heredoc). > Another thing, of course, it's that they are by no means raw (which of > course doesn't stop rust from adopting their syntax for raw strings. I would > just say that it would be nice to pick such syntax for raw strings that > allows for both single line raw strings and multi-line raw strings to be > represented easily. > > On Sep 22, 2013 1:00 PM, "Steven Ashley" <ste...@ashley.net.nz> wrote: > Hi everyone, > > Have we considered syntax similar to Ruby style heredocs? I particularly like > the light looking syntax. > > - The indentation of the block is determined by the indentation of the eos > marker. Keeping code flow natural. > > <<eos > Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod > tempor > incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, > quis nostrud > eos > > - Brackets in the eos marker are flipped to allow <<[[[raw]]] > > - eoseos causes a literal eos to be inserted. For example <<"a ""raw"" string" > > My main concern is that << might be a common operator. Perhaps <<< would be > ok? > > Thoughts? > > On 21/09/2013 4:28 AM, "Alex Crichton" <a...@crichton.co> wrote: > > Of the 3, Lua's is probably the best, although it's a bit esoteric (with > > using [[ and nary a quote in sight). > > I think an important thing to keep in mind is that the main reason > behind creating a new form of literal is for things like: > > * Escapes in format! strings > * Possible regular expression syntax (this also may be a syntax extension) > * Type literal windows paths (escaping \ is hard) > * Otherwise long literals which may contain quotes (like html text) > > With those in mind, although Lua's syntax is sufficient, is it nice to > use? If the first thing I saw as an introduction to Rust was: > > fn main() { > println!([[Hello, {}!]], "world"); > } > > I would be a little confused. Now the [[/]] aren't really necessary in > this case, but I'm personally unsure of how usable [[/]] would be > throughout the language. Raw literals in languages like C++ and Lua I > think aren't intended to be used that often. Instead they should be > used only when necessary, and you frequently don't see them in code. > For rust, the use cases which are the cause of this discussion are > actually fairly common, and I'm not sure that we'd want to see [[/]] > all over the place, although of course that's just my opinion :) > > Skimming back, I haven't seen a suggestion of the backtick character > as a delimiter. Go takes this approach, and I don't believe that in Go > you can have a backtick anywhere in a backtick literal, and otherwise > what you see is what you get. It's at least something to consider, > though. > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev > > _______________________________________________ > Rust-dev mailing list > Rust-dev@mozilla.org > https://mail.mozilla.org/listinfo/rust-dev >
_______________________________________________ Rust-dev mailing list Rust-dev@mozilla.org https://mail.mozilla.org/listinfo/rust-dev