use crate::{
http_client::{GenericHttpClient, HttpClient},
Package, Result,
};
#[cfg(feature = "crates")]
mod crates;
#[cfg(feature = "crates")]
pub use crates::Crates;
#[cfg(feature = "github")]
mod github;
#[cfg(feature = "github")]
pub use github::GitHub;
#[cfg(feature = "npm")]
mod npm;
#[cfg(feature = "npm")]
pub use npm::Npm;
#[cfg(feature = "pypi")]
mod pypi;
#[cfg(feature = "pypi")]
pub use pypi::PyPI;
pub trait Registry {
const NAME: &'static str;
fn get_latest_version<T: HttpClient>(
http_client: GenericHttpClient<T>,
pkg: &Package,
) -> Result<Option<String>>;
}