swc_estree_compat/swcify/
mod.rsuse std::fmt::Debug;
pub use self::ctx::Context;
mod class;
mod ctx;
mod expr;
mod jsx;
mod lit;
mod pat;
mod program;
mod stmt;
mod typescript;
pub trait Swcify {
type Output: Debug + Send + Sync;
fn swcify(self, ctx: &Context) -> Self::Output;
}
impl<T> Swcify for Vec<T>
where
T: Swcify,
{
type Output = Vec<T::Output>;
fn swcify(self, ctx: &Context) -> Self::Output {
self.into_iter().map(|v| v.swcify(ctx)).collect()
}
}
impl<T> Swcify for Option<T>
where
T: Swcify,
{
type Output = Option<T::Output>;
fn swcify(self, ctx: &Context) -> Self::Output {
self.map(|v| v.swcify(ctx))
}
}
impl<T> Swcify for Box<T>
where
T: Swcify,
{
type Output = T::Output;
fn swcify(self, ctx: &Context) -> Self::Output {
(*self).swcify(ctx)
}
}