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
|
use std::path::PathBuf;
use crate::size_threshold::SizeThresholdExceeded;
use mqtt_client::MqttClientError;
use tedge_config::TEdgeConfigError;
use thin_edge_json::serialize::ThinEdgeJsonSerializationError;
#[derive(Debug, thiserror::Error)]
pub enum MapperError {
#[error(transparent)]
FromMqttClient(#[from] MqttClientError),
#[error("Home directory is not found.")]
HomeDirNotFound,
#[error(transparent)]
FromTEdgeConfig(#[from] TEdgeConfigError),
#[error(transparent)]
FromConfigSetting(#[from] tedge_config::ConfigSettingError),
#[error(transparent)]
FromFlockfile(#[from] flockfile::FlockfileError),
}
#[derive(Debug, thiserror::Error)]
pub enum ConversionError {
#[error(transparent)]
FromMapper(#[from] MapperError),
#[error(transparent)]
FromCumulocityJsonError(#[from] c8y_translator::json::CumulocityJsonError),
#[error(transparent)]
FromThinEdgeJsonSerialization(#[from] ThinEdgeJsonSerializationError),
#[error(transparent)]
FromThinEdgeJsonDeserialization(#[from] thin_edge_json::alarm::ThinEdgeJsonDeserializerError),
#[error(transparent)]
FromThinEdgeJsonParser(#[from] thin_edge_json::parser::ThinEdgeJsonParserError),
#[error(transparent)]
FromSizeThresholdExceeded(#[from] SizeThresholdExceeded),
#[error("The given Child ID '{id}' is invalid.")]
InvalidChildId { id: String },
#[error(transparent)]
FromMqttClient(#[from] MqttClientError),
#[error(transparent)]
FromOperationsError(#[from] OperationsError),
#[error(transparent)]
FromSmartRestSerializerError(#[from] c8y_smartrest::error::SmartRestSerializerError),
#[error("Unsupported topic: {0}")]
UnsupportedTopic(String),
}
#[derive(Debug, thiserror::Error)]
pub enum OperationsError {
#[error(transparent)]
FromIo(#[from] std::io::Error),
#[error("Cannot extract the operation name from the path: {0}")]
InvalidOperationName(PathBuf),
#[error("Error while parsing operation file: '{0}': {1}.")]
TomlError(PathBuf, #[source] toml::de::Error),
}
|