aboutsummaryrefslogtreecommitdiffstats
path: root/src/parser/serialize.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/serialize.rs')
-rw-r--r--src/parser/serialize.rs36
1 files changed, 0 insertions, 36 deletions
diff --git a/src/parser/serialize.rs b/src/parser/serialize.rs
deleted file mode 100644
index 260084f..0000000
--- a/src/parser/serialize.rs
+++ /dev/null
@@ -1,36 +0,0 @@
-use pest::{RuleType, iterators::{Pair, Pairs}};
-use serde::{
- Serialize,
- Serializer,
- ser::{
- SerializeSeq,
- SerializeStruct,
- },
-};
-
-pub struct PairsWrap<'i, R>(pub Pairs<'i, R>);
-pub struct PairWrap <'i, R>(pub Pair <'i, R>);
-
-impl<'i, R> Serialize for PairsWrap<'i, R> where R: RuleType {
- fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer {
- let mut seq = serializer.serialize_seq(None)?;
- for pair in self.0.clone() {
- seq.serialize_element(&PairWrap(pair))?;
- }
- seq.end()
- }
-}
-
-impl<'i, R> Serialize for PairWrap<'i, R> where R: RuleType {
- fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer {
- let mut state = serializer.serialize_struct("Pair", 3)?;
- state.serialize_field("rule", &format!("{:?}", self.0.as_rule()))?;
- let tokens: Vec<_> = self.0.clone().tokens().collect();
- if tokens.len() > 2 {
- state.serialize_field("inner", &PairsWrap(self.0.clone().into_inner()))?;
- } else {
- state.serialize_field("content", self.0.as_str())?;
- }
- state.end()
- }
-}