1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use serde::Serialize;
use super::node_kind::NodeKind;
use super::token::Token;

#[derive(Debug, Clone, Serialize)]
pub struct Node(pub Token, pub NodeKind);

impl Node {
    // experimental
    pub fn to_string(self, payload: &[u8]) -> &[u8] {
        &payload[self.0.span.range.start..self.0.span.range.end]
    }

    pub fn to_token(self) -> Token {
        self.0
    }

    pub fn to_node_kind(self) -> NodeKind {
        self.1
    }
}