1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
use std::time::Duration;
use anthill_di::types::{AddDependencyError, BuildDependencyError, TypeInfo, MapComponentError};
use thiserror::Error;
use anthill_di_configuration_extension::types::LoadConfigurationError;
#[derive(Error, Debug)]
pub enum AppRunError {
#[error("Service start timeout expired: [{timeout_duration:?}] [{service_type_info:?}]")]
ServiceStartTimeoutExpired { timeout_duration: Duration, service_type_info: TypeInfo, },
#[error("Service end timeout expired: [{timeout_duration:?}] [{service_type_info:?}]")]
ServiceStopTimeoutExpired { timeout_duration: Duration, service_type_info: TypeInfo, },
#[error("Ioc add dependency error: [{0:?}]")]
IocAddDependencyError(AddDependencyError),
#[error("Ioc build dependency error: [{0:?}]")]
IocBuildDependencyError(BuildDependencyError),
#[error("Ioc map dependency error: [{0:?}]")]
IocMapComponentError(MapComponentError),
#[error("Load configuration error: [{0:?}]")]
LoadConfigurationError(LoadConfigurationError),
}
impl PartialEq for AppRunError {
fn eq(&self, other: &Self) -> bool {
match (self, other) {
(Self::ServiceStartTimeoutExpired { timeout_duration: l_timeout_duration, service_type_info: l_service_type_info }, Self::ServiceStartTimeoutExpired { timeout_duration: r_timeout_duration, service_type_info: r_service_type_info }) => l_timeout_duration == r_timeout_duration && l_service_type_info == r_service_type_info,
(Self::ServiceStopTimeoutExpired { timeout_duration: l_timeout_duration, service_type_info: l_service_type_info }, Self::ServiceStopTimeoutExpired { timeout_duration: r_timeout_duration, service_type_info: r_service_type_info }) => l_timeout_duration == r_timeout_duration && l_service_type_info == r_service_type_info,
(Self::IocAddDependencyError(l0), Self::IocAddDependencyError(r0)) => l0 == r0,
(Self::IocBuildDependencyError(l0), Self::IocBuildDependencyError(r0)) => l0 == r0,
(Self::IocMapComponentError(l0), Self::IocMapComponentError(r0)) => l0 == r0,
(Self::LoadConfigurationError(..), Self::LoadConfigurationError(..)) => true,
_ => false,
}
}
}
pub type AppRunResult = Result<(), AppRunError>;
#[derive(Error, Debug, PartialEq)]
pub enum AddServiceError {
#[error("Ioc add dependency error: [{0:?}]")]
IocAddDependencyError(AddDependencyError),
#[error("Ioc build dependency error: [{0:?}]")]
IocBuildDependencyError(BuildDependencyError),
#[error("Ioc map dependency error: [{0:?}]")]
IocMapComponentError(MapComponentError),
}
pub type AddServiceResult = Result<(), AddServiceError>;
#[derive(Error, Debug, PartialEq)]
pub enum AddStartupError {
#[error("Ioc add dependency error: [{0:?}]")]
IocAddDependencyError(AddDependencyError),
#[error("Ioc map dependency error: [{0:?}]")]
IocMapComponentError(MapComponentError),
}
pub type AddStartupResult = Result<(), AddStartupError>;
#[derive(Error, Debug, PartialEq)]
pub enum AddLifeTimeManagerError {
#[error("Ioc add dependency error: [{0:?}]")]
IocAddDependencyError(AddDependencyError),
#[error("Ioc map dependency error: [{0:?}]")]
IocMapComponentError(MapComponentError),
}
pub type AddLifeTimeManagerResult = Result<(), AddLifeTimeManagerError>;
#[derive(Error, Debug)]
pub enum RegisterDefaultConfigurationError {
#[error("Ioc add dependency error: [{0:?}]")]
IocAddDependencyError(AddDependencyError),
#[error("Io error: [{0:?}]")]
IoError(std::io::Error),
}
pub type RegisterDefaultConfigurationResult = Result<(), RegisterDefaultConfigurationError>;