swc/crates/swc_ecma_transforms_base/tests/par_explode.rs
2021-11-10 19:00:54 +09:00

45 lines
969 B
Rust

use swc_ecma_ast::*;
use swc_ecma_transforms_base::perf::{ParExplode, Parallel};
use swc_ecma_transforms_macros::parallel;
use swc_ecma_visit::{Fold, VisitMut};
#[derive(Default, Clone, Copy)]
struct ExampleVisitMut;
impl Parallel for ExampleVisitMut {
fn merge(&mut self, _: Self) {}
fn create(&self) -> Self {
Self
}
}
impl ParExplode for ExampleVisitMut {
fn after_one_stmt(&mut self, _: &mut Vec<Stmt>) {}
fn after_one_module_item(&mut self, _: &mut Vec<ModuleItem>) {}
}
#[parallel(explode)]
impl VisitMut for ExampleVisitMut {}
#[derive(Default, Clone, Copy)]
struct ExampleFold;
impl Parallel for ExampleFold {
fn merge(&mut self, _: Self) {}
fn create(&self) -> Self {
Self
}
}
impl ParExplode for ExampleFold {
fn after_one_stmt(&mut self, _: &mut Vec<swc_ecma_ast::Stmt>) {}
fn after_one_module_item(&mut self, _: &mut Vec<ModuleItem>) {}
}
#[parallel(explode)]
impl Fold for ExampleFold {}