tinymist_package/pack/
release.rsuse ecow::EcoString;
use super::*;
#[derive(Debug, Clone)]
pub struct GitHubReleasePack {
pub specifier: PackageSpec,
pub repo: EcoString,
pub name: EcoString,
}
impl PackFs for GitHubReleasePack {
fn read_all(
&mut self,
f: &mut (dyn FnMut(&str, PackFile) -> PackageResult<()> + Send + Sync),
) -> PackageResult<()> {
let url = format!(
"https://api.github.com/repos/{}/releases/latest/{}",
self.repo, self.name,
);
HttpPack::new(self.specifier.clone(), url).read_all(f)
}
}
impl Pack for GitHubReleasePack {}
impl PackExt for GitHubReleasePack {}