summaryrefslogtreecommitdiffstats
path: root/crates/rebel-parse/src/token.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/rebel-parse/src/token.rs')
-rw-r--r--crates/rebel-parse/src/token.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/crates/rebel-parse/src/token.rs b/crates/rebel-parse/src/token.rs
index d147205..2f2f849 100644
--- a/crates/rebel-parse/src/token.rs
+++ b/crates/rebel-parse/src/token.rs
@@ -15,12 +15,19 @@ pub enum Spacing {
Joint,
}
-#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+#[derive(Clone, Debug, PartialEq, Eq)]
pub struct String<'a> {
- pub content: &'a str,
+ pub pieces: Vec<StringPiece<'a>>,
pub kind: StringKind,
}
+#[derive(Clone, Debug, PartialEq, Eq)]
+pub enum StringPiece<'a> {
+ Chars(&'a str),
+ Escape(char),
+ Interp(TokenStream<'a>),
+}
+
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum StringKind {
String,