1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use anyhow::Error; use std::{path::Path, sync::Arc}; use swc_common::SourceFile; use swc_ecma_ast::Module; pub trait Load { fn load(&self, path: &Path) -> Result<(Arc<SourceFile>, Module), Error>; } impl<T: ?Sized + Load> Load for Box<T> { fn load(&self, path: &Path) -> Result<(Arc<SourceFile>, Module), Error> { T::load(self, path) } } impl<'a, T: ?Sized + Load> Load for &'a T { fn load(&self, path: &Path) -> Result<(Arc<SourceFile>, Module), Error> { T::load(self, path) } }