use crate::buildpack::{Version, error::BuildpackError};
pub type Result<T> = std::result::Result<T, LauncherError>;
#[derive(thiserror::Error, Debug)]
pub enum LauncherError {
#[error("Invalid execution mode. ({0:?})")]
BuildpackError(BuildpackError),
#[error("Invalid execution mode. ({0:?})")]
UnexpectedError(String),
#[error("Invalid execution mode. ({0:?})")]
InvalidExecutable(String),
#[error("Unknown execution mode. ({0:?})")]
UnknownExecutable(String),
#[error("When there is no default process a command is required")]
UserProvidedProcessNoArgs,
#[error("Platform api is not supported. ({0:?})")]
UnsupportedPlatformApi(Version),
#[error("Platform api is depreciated. ({0:?})")]
DepreciatedPlatformApi(Version),
#[error("Buildpack api is not supported. ({0:?})")]
UnsupportedBuildpackApi(Version),
#[error("Buildpack api is depreciated. ({0:?})")]
DepreciatedBuildpackApi(Version),
#[error("Failed to read metadata.toml")]
ReadingMetadata(std::io::Error),
#[error("Failed to parse metadata.toml. ({0:?})")]
ParsingMetadata(toml::de::Error),
}