summaryrefslogtreecommitdiff
path: root/src/syntax
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-08-02 16:56:14 +0200
committerLaurenz <laurmaedje@gmail.com>2020-08-02 16:56:14 +0200
commitd5ff97f42ed1e682a66ea8d51e5f9ed1be547b9c (patch)
tree2fdc3a368c4320051e3f62a460f3912fe5f44c7c /src/syntax
parent533374db14087ac54fdc86afa5f009487ac1b850 (diff)
Move binary into separate crate and tidy dependencies 🎭
Diffstat (limited to 'src/syntax')
-rw-r--r--src/syntax/decoration.rs7
-rw-r--r--src/syntax/span.rs11
2 files changed, 13 insertions, 5 deletions
diff --git a/src/syntax/decoration.rs b/src/syntax/decoration.rs
index ab327237..13a9ad36 100644
--- a/src/syntax/decoration.rs
+++ b/src/syntax/decoration.rs
@@ -1,14 +1,17 @@
//! Decorations for semantic syntax highlighting.
+#[cfg(feature = "serialize")]
use serde::Serialize;
+
use super::span::SpanVec;
/// A list of spanned decorations.
pub type Decorations = SpanVec<Decoration>;
/// Decorations for semantic syntax highlighting.
-#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, Serialize)]
-#[serde(rename_all = "camelCase")]
+#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash)]
+#[cfg_attr(feature = "serialize", derive(Serialize))]
+#[cfg_attr(feature = "serialize", serde(rename_all = "camelCase"))]
pub enum Decoration {
/// A valid function name.
/// ```typst
diff --git a/src/syntax/span.rs b/src/syntax/span.rs
index 52b90cee..9b3c7d24 100644
--- a/src/syntax/span.rs
+++ b/src/syntax/span.rs
@@ -2,6 +2,8 @@
use std::fmt::{self, Debug, Formatter};
use std::ops::{Add, Sub};
+
+#[cfg(feature = "serialize")]
use serde::Serialize;
/// Span offsetting.
@@ -23,7 +25,8 @@ impl<T> Offset for SpanVec<T> {
}
/// A value with the span it corresponds to in the source code.
-#[derive(Copy, Clone, Eq, PartialEq, Hash, Serialize)]
+#[derive(Copy, Clone, Eq, PartialEq, Hash)]
+#[cfg_attr(feature = "serialize", derive(Serialize))]
pub struct Spanned<T> {
/// The value.
pub v: T,
@@ -77,7 +80,8 @@ impl<T: Debug> Debug for Spanned<T> {
}
/// Locates a slice of source code.
-#[derive(Copy, Clone, Eq, PartialEq, Hash, Serialize)]
+#[derive(Copy, Clone, Eq, PartialEq, Hash)]
+#[cfg_attr(feature = "serialize", derive(Serialize))]
pub struct Span {
/// The inclusive start position.
pub start: Pos,
@@ -129,7 +133,8 @@ impl Debug for Span {
}
/// Zero-indexed line-column position in source code.
-#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize)]
+#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash)]
+#[cfg_attr(feature = "serialize", derive(Serialize))]
pub struct Pos {
/// The zero-indexed line.
pub line: usize,