summaryrefslogtreecommitdiff
path: root/src/syntax
diff options
context:
space:
mode:
Diffstat (limited to 'src/syntax')
-rw-r--r--src/syntax/node.rs14
-rw-r--r--src/syntax/span.rs13
2 files changed, 13 insertions, 14 deletions
diff --git a/src/syntax/node.rs b/src/syntax/node.rs
index 537a5686..5f76b56a 100644
--- a/src/syntax/node.rs
+++ b/src/syntax/node.rs
@@ -37,15 +37,15 @@ impl Node {
/// Desugar markup into a function call.
pub fn desugar(&self) -> Option<CallExpr> {
match *self {
- Node::Text(_) => None,
- Node::Space => None,
- Node::Linebreak(span) => Some(call(span, Self::LINEBREAK)),
- Node::Parbreak(span) => Some(call(span, Self::PARBREAK)),
- Node::Strong(span) => Some(call(span, Self::STRONG)),
- Node::Emph(span) => Some(call(span, Self::EMPH)),
+ Self::Text(_) => None,
+ Self::Space => None,
+ Self::Linebreak(span) => Some(call(span, Self::LINEBREAK)),
+ Self::Parbreak(span) => Some(call(span, Self::PARBREAK)),
+ Self::Strong(span) => Some(call(span, Self::STRONG)),
+ Self::Emph(span) => Some(call(span, Self::EMPH)),
Self::Heading(ref heading) => Some(heading.desugar()),
Self::Raw(ref raw) => Some(raw.desugar()),
- Node::Expr(_) => None,
+ Self::Expr(_) => None,
}
}
}
diff --git a/src/syntax/span.rs b/src/syntax/span.rs
index d3683c1a..f9b1d312 100644
--- a/src/syntax/span.rs
+++ b/src/syntax/span.rs
@@ -2,13 +2,15 @@ use std::cell::Cell;
use std::fmt::{self, Debug, Display, Formatter};
use std::ops::{Add, Range};
+use serde::{Deserialize, Serialize};
+
thread_local! {
static CMP_SPANS: Cell<bool> = Cell::new(true);
}
/// A value with the span it corresponds to in the source code.
#[derive(Default, Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
-#[cfg_attr(feature = "serde", derive(serde::Serialize))]
+#[derive(Serialize, Deserialize)]
pub struct Spanned<T> {
/// The spanned value.
pub v: T,
@@ -53,8 +55,7 @@ impl<T: Debug> Debug for Spanned<T> {
}
/// Bounds of a slice of source code.
-#[derive(Copy, Clone, Ord, PartialOrd)]
-#[cfg_attr(feature = "serde", derive(serde::Serialize))]
+#[derive(Copy, Clone, Ord, PartialOrd, Serialize, Deserialize)]
pub struct Span {
/// The inclusive start position.
pub start: Pos,
@@ -158,8 +159,7 @@ impl Debug for Span {
}
/// A byte position in source code.
-#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
-#[cfg_attr(feature = "serde", derive(serde::Serialize))]
+#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)]
pub struct Pos(pub u32);
impl Pos {
@@ -208,8 +208,7 @@ impl Debug for Pos {
}
/// A one-indexed line-column position in source code.
-#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd)]
-#[cfg_attr(feature = "serde", derive(serde::Serialize))]
+#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Serialize, Deserialize)]
pub struct Location {
/// The one-indexed line.
pub line: u32,