From 36b3067c19c8743032a44f888ee48702b88d135b Mon Sep 17 00:00:00 2001 From: Laurenz Date: Sat, 10 Jul 2021 13:07:39 +0200 Subject: =?UTF-8?q?Eco=20string=20=F0=9F=8C=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/parse/resolve.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/parse/resolve.rs') diff --git a/src/parse/resolve.rs b/src/parse/resolve.rs index b3fdef4a..c3676215 100644 --- a/src/parse/resolve.rs +++ b/src/parse/resolve.rs @@ -1,9 +1,10 @@ use super::{is_newline, Scanner}; +use crate::eco::EcoString; use crate::syntax::{Ident, RawNode, Span}; /// Resolve all escape sequences in a string. -pub fn resolve_string(string: &str) -> String { - let mut out = String::with_capacity(string.len()); +pub fn resolve_string(string: &str) -> EcoString { + let mut out = EcoString::with_capacity(string.len()); let mut s = Scanner::new(string); while let Some(c) = s.eat() { @@ -52,12 +53,12 @@ pub fn resolve_raw(span: Span, text: &str, backticks: usize) -> RawNode { let (tag, inner) = split_at_lang_tag(text); let (text, block) = trim_and_split_raw(inner); let lang = Ident::new(tag, span.start .. span.start + tag.len()); - RawNode { span, lang, text, block } + RawNode { span, lang, text: text.into(), block } } else { RawNode { span, lang: None, - text: split_lines(text).join("\n"), + text: split_lines(text).join("\n").into(), block: false, } } -- cgit v1.2.3