mirror of
https://github.com/swc-project/swc.git
synced 2024-12-19 03:31:45 +03:00
41 lines
738 B
Rust
41 lines
738 B
Rust
#![allow(clippy::ptr_arg)]
|
|
|
|
use std::any::Any;
|
|
|
|
use swc_visit::define;
|
|
|
|
/// Visitable nodes.
|
|
pub trait Node: Any {}
|
|
|
|
impl<T: ?Sized> Node for T where T: Any {}
|
|
|
|
#[derive(Debug, PartialEq)]
|
|
pub struct Item {
|
|
// pub field: usize,
|
|
// pub inner: Option<Box<Item>>,
|
|
pub opt_vec: Option<Vec<Item>>,
|
|
pub vec_opt: Vec<Option<Item>>,
|
|
|
|
pub value: f64,
|
|
}
|
|
#[derive(Debug, PartialEq)]
|
|
pub enum Enum {
|
|
Item(Item),
|
|
Boxed(Box<Enum>),
|
|
}
|
|
|
|
define!({
|
|
pub struct Item {
|
|
// pub field: usize,
|
|
// pub inner: Option<Box<Item>>,
|
|
pub opt_vec: Option<Vec<Item>>,
|
|
pub vec_opt: Vec<Option<Item>>,
|
|
|
|
pub value: f64,
|
|
}
|
|
pub enum Enum {
|
|
Item(Item),
|
|
Boxed(Box<Enum>),
|
|
}
|
|
});
|