summaryrefslogtreecommitdiff
path: root/src/parse/resolve.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-07-10 13:07:39 +0200
committerLaurenz <laurmaedje@gmail.com>2021-07-10 13:07:39 +0200
commit36b3067c19c8743032a44f888ee48702b88d135b (patch)
tree89893f4501109b35bb6498b93bda4f3cc82dba40 /src/parse/resolve.rs
parent9950627789358b4d46c7fd8ba20d1428aee7bf01 (diff)
Eco string 🌱
Diffstat (limited to 'src/parse/resolve.rs')
-rw-r--r--src/parse/resolve.rs9
1 files changed, 5 insertions, 4 deletions
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,
}
}