Skip to main content

oak_typescript/ast/
root_nodes.rs

1use crate::ast::Statement;
2use core::range::Range;
3#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5
6/// TypeScript AST root node.
7#[derive(Debug, Clone)]
8#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
9pub struct TypeScriptRoot {
10    /// Statements in the root.
11    pub statements: Vec<Statement>,
12    /// Source span of the root.
13    #[cfg_attr(feature = "serde", serde(with = "oak_core::serde_range"))]
14    pub span: Range<usize>,
15}
16
17impl TypeScriptRoot {
18    /// Creates a new `TypeScriptRoot`.
19    pub fn new(span: Range<usize>) -> Self {
20        Self { statements: vec![], span }
21    }
22}