tinymist_world/package/
mod.rs

1use std::sync::Arc;
2
3use tinymist_std::ImmutPath;
4use typst::diag::FileResult;
5
6pub use tinymist_package::*;
7
8pub struct RegistryPathMapper<T> {
9    pub registry: Arc<T>,
10}
11
12impl<T> RegistryPathMapper<T> {
13    pub fn new(registry: Arc<T>) -> Self {
14        Self { registry }
15    }
16}
17
18impl<T: PackageRegistry> tinymist_vfs::RootResolver for RegistryPathMapper<T> {
19    fn resolve_package_root(&self, pkg: &PackageSpec) -> FileResult<ImmutPath> {
20        Ok(self.registry.resolve(pkg)?)
21    }
22}