blob: f9d284caf590a152c82312b844ad63e133ba7c2f [file] [log] [blame]
use error_set::error_set;
use quinn::{ConnectionError as QuicConnectionError, ReadToEndError, WriteError};
use std::array::TryFromSliceError;
use tokio::io;
error_set!(
ServerError = ConfigError || ArchiverError || ConnectionError || LogError || CompatError || QuicError;
IoError = {
#[display("IO error")]
IoError(io::Error),
#[display("Write error")]
WriteError(WriteError),
#[display("Read to end error")]
ReadToEndError(ReadToEndError)
};
ConfigError = {
#[display("Invalid configuration provider: {}", provider_type)]
InvalidConfigurationProvider { provider_type: String },
#[display("Cannot load configuration")]
CannotLoadConfiguration,
#[display("Invalid configuration")]
InvalidConfiguration,
#[display("Cache config validation failure")]
CacheConfigValidationFailure,
};
ArchiverError = {
#[display("File to archive not found: {}", file_path)]
FileToArchiveNotFound { file_path: String },
#[display("Cannot initialize S3 archiver")]
CannotInitializeS3Archiver,
#[display("Invalid S3 credentials")]
InvalidS3Credentials,
#[display("Cannot archive file: {}", file_path)]
CannotArchiveFile { file_path: String },
} || IoError;
ConnectionError = {
#[display("Connection error")]
QuicConnectionError(QuicConnectionError),
} || IoError || CommonError;
LogError = {
#[display("Logging filter reload failure")]
FilterReloadFailure,
#[display("Logging stdout reload failure")]
StdoutReloadFailure,
#[display("Logging file reload failure")]
FileReloadFailure,
};
CompatError = {
#[display("Index migration error")]
IndexMigrationError,
} || IoError || CommonError;
CommonError = {
#[display("Try from slice error")]
TryFromSliceError(TryFromSliceError),
#[display("SDK error")]
SdkError(iggy::error::IggyError),
};
QuicError = {
#[display("Cert load error")]
CertLoadError,
#[display("Cert generation error")]
CertGenerationError,
#[display("Config creation error")]
ConfigCreationError,
#[display("Transport config error")]
TransportConfigError,
};
);