tinymist_package/pack/
release.rs1use ecow::EcoString;
2
3use super::*;
4
5#[derive(Debug, Clone)]
7pub struct GitHubReleasePack {
8 pub specifier: PackageSpec,
10 pub repo: EcoString,
12 pub name: EcoString,
14}
15
16impl PackFs for GitHubReleasePack {
17 fn read_all(
18 &mut self,
19 f: &mut (dyn FnMut(&str, PackFile) -> PackageResult<()> + Send + Sync),
20 ) -> PackageResult<()> {
21 let url = format!(
22 "https://api.github.com/repos/{}/releases/latest/{}",
23 self.repo, self.name,
24 );
25
26 HttpPack::new(self.specifier.clone(), url).read_all(f)
27 }
28}
29
30impl Pack for GitHubReleasePack {}
31impl PackExt for GitHubReleasePack {}