#![warn(missing_docs)]
mod install;
mod release;
#[cfg(feature = "self-update")]
mod replace;
#[cfg(feature = "cli")]
pub use install::UpdateArgs;
#[cfg(all(feature = "cli", feature = "self-update"))]
pub use install::run;
pub use install::{
BinstallSource, InstallMethod, StoreKind, advice, advice_command, asset_name, cargo_home,
install_method, platform,
};
#[cfg(feature = "self-update")]
pub use install::{download_asset, install};
pub use release::{Asset, Release, ReleaseSource, client, latest_release};
#[cfg(feature = "self-update")]
pub use replace::replace_file;
#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("{0}")]
Http(String),
#[error("{0}")]
NoRelease(String),
#[error("{0}")]
NoAsset(String),
#[error("{0}")]
NotConfigured(String),
#[error(transparent)]
Io(#[from] std::io::Error),
}
pub type Result<T> = std::result::Result<T, Error>;