Skip to main content

oak_typescript/ast/
misc_nodes.rs

1use crate::ast::Expression;
2use core::range::Range;
3#[cfg(feature = "serde")]
4use serde::{Deserialize, Serialize};
5
6/// Represents a TypeScript decorator.
7#[derive(Debug, Clone)]
8#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
9pub struct Decorator {
10    /// The expression being used as a decorator.
11    pub expression: Expression,
12    /// Source span of the decorator.
13    #[cfg_attr(feature = "serde", serde(with = "oak_core::serde_range"))]
14    pub span: Range<usize>,
15}
16
17/// Represents a member of a TypeScript enum.
18#[derive(Debug, Clone)]
19#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
20pub struct EnumMember {
21    /// Name of the enum member.
22    pub name: String,
23    /// Initializer expression of the enum member, if any.
24    pub initializer: Option<Expression>,
25    /// Source span of the enum member.
26    #[cfg_attr(feature = "serde", serde(with = "oak_core::serde_range"))]
27    pub span: Range<usize>,
28}