tinymist_package/pack/
universe.rs1use super::*;
2use crate::registry::DEFAULT_REGISTRY;
3
4#[derive(Debug, Clone)]
6pub struct UniversePack {
7 pub specifier: PackageSpec,
9}
10
11impl UniversePack {
12 pub fn new(specifier: PackageSpec) -> Self {
14 Self { specifier }
15 }
16}
17
18impl PackFs for UniversePack {
19 fn read_all(
20 &mut self,
21 f: &mut (dyn FnMut(&str, PackFile) -> PackageResult<()> + Send + Sync),
22 ) -> PackageResult<()> {
23 let spec = &self.specifier;
24 assert_eq!(spec.namespace, "preview");
25
26 let url = format!(
27 "{DEFAULT_REGISTRY}/preview/{}-{}.tar.gz",
28 spec.name, spec.version
29 );
30
31 HttpPack::new(self.specifier.clone(), url).read_all(f)
32 }
33}
34
35impl Pack for UniversePack {}
36impl PackExt for UniversePack {}