114 lines
2.6 KiB
Rust
114 lines
2.6 KiB
Rust
use super::types::{ParaId, Port};
|
|
|
|
/// An error at the configuration level.
|
|
#[derive(thiserror::Error, Debug)]
|
|
pub enum ConfigError {
|
|
#[error("relaychain.{0}")]
|
|
Relaychain(anyhow::Error),
|
|
|
|
#[error("teyrchain[{0}].{1}")]
|
|
Teyrchain(ParaId, anyhow::Error),
|
|
|
|
#[error("global_settings.{0}")]
|
|
GlobalSettings(anyhow::Error),
|
|
|
|
#[error("nodes['{0}'].{1}")]
|
|
Node(String, anyhow::Error),
|
|
|
|
#[error("collators['{0}'].{1}")]
|
|
Collator(String, anyhow::Error),
|
|
}
|
|
|
|
/// An error at the field level.
|
|
#[derive(thiserror::Error, Debug)]
|
|
pub enum FieldError {
|
|
#[error("name: {0}")]
|
|
Name(anyhow::Error),
|
|
|
|
#[error("chain: {0}")]
|
|
Chain(anyhow::Error),
|
|
|
|
#[error("image: {0}")]
|
|
Image(anyhow::Error),
|
|
|
|
#[error("default_image: {0}")]
|
|
DefaultImage(anyhow::Error),
|
|
|
|
#[error("command: {0}")]
|
|
Command(anyhow::Error),
|
|
|
|
#[error("default_command: {0}")]
|
|
DefaultCommand(anyhow::Error),
|
|
|
|
#[error("bootnodes_addresses[{0}]: '{1}' {2}")]
|
|
BootnodesAddress(usize, String, anyhow::Error),
|
|
|
|
#[error("genesis_wasm_generator: {0}")]
|
|
GenesisWasmGenerator(anyhow::Error),
|
|
|
|
#[error("genesis_state_generator: {0}")]
|
|
GenesisStateGenerator(anyhow::Error),
|
|
|
|
#[error("local_ip: {0}")]
|
|
LocalIp(anyhow::Error),
|
|
|
|
#[error("default_resources.{0}")]
|
|
DefaultResources(anyhow::Error),
|
|
|
|
#[error("resources.{0}")]
|
|
Resources(anyhow::Error),
|
|
|
|
#[error("request_memory: {0}")]
|
|
RequestMemory(anyhow::Error),
|
|
|
|
#[error("request_cpu: {0}")]
|
|
RequestCpu(anyhow::Error),
|
|
|
|
#[error("limit_memory: {0}")]
|
|
LimitMemory(anyhow::Error),
|
|
|
|
#[error("limit_cpu: {0}")]
|
|
LimitCpu(anyhow::Error),
|
|
|
|
#[error("ws_port: {0}")]
|
|
WsPort(anyhow::Error),
|
|
|
|
#[error("rpc_port: {0}")]
|
|
RpcPort(anyhow::Error),
|
|
|
|
#[error("prometheus_port: {0}")]
|
|
PrometheusPort(anyhow::Error),
|
|
|
|
#[error("p2p_port: {0}")]
|
|
P2pPort(anyhow::Error),
|
|
|
|
#[error("registration_strategy: {0}")]
|
|
RegistrationStrategy(anyhow::Error),
|
|
}
|
|
|
|
/// A conversion error for shared types across fields.
|
|
#[derive(thiserror::Error, Debug, Clone)]
|
|
pub enum ConversionError {
|
|
#[error("'{0}' shouldn't contains whitespace")]
|
|
ContainsWhitespaces(String),
|
|
|
|
#[error("'{}' doesn't match regex '{}'", .value, .regex)]
|
|
DoesntMatchRegex { value: String, regex: String },
|
|
|
|
#[error("can't be empty")]
|
|
CantBeEmpty,
|
|
|
|
#[error("deserialize error")]
|
|
DeserializeError(String),
|
|
}
|
|
|
|
/// A validation error for shared types across fields.
|
|
#[derive(thiserror::Error, Debug, Clone)]
|
|
pub enum ValidationError {
|
|
#[error("'{0}' is already used across config")]
|
|
PortAlreadyUsed(Port),
|
|
|
|
#[error("can't be empty")]
|
|
CantBeEmpty(),
|
|
}
|