ocpp_types/v21/
reset_response.rs1use super::common::*;
5#[cfg(feature = "alloc")]
6#[derive(Debug, Clone, PartialEq, Eq)]
7#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
8pub struct ResetResponse<CustomDataType = crate::NoCustomData> {
9 #[cfg_attr(feature = "serde", serde(rename = "customData"))]
10 #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
11 pub custom_data: Option<CustomDataType>,
12 pub status: ResetStatusEnum,
13 #[cfg_attr(feature = "serde", serde(rename = "statusInfo"))]
14 #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
15 pub status_info: Option<StatusInfo<CustomDataType>>,
16}
17#[cfg(feature = "alloc")]
18impl<CustomDataType> crate::Action for ResetResponse<CustomDataType> {
19 const ACTION: &'static str = "Reset";
20}
21#[cfg(all(feature = "validate", feature = "alloc"))]
22impl<CustomDataType> crate::validate::Validate for ResetResponse<CustomDataType> {
23 fn validate(&self) -> Result<(), crate::validate::ValidationError> {
24 crate::validate::Validate::validate(&self.status)
25 .map_err(|error| error.in_field("status"))?;
26 if let Some(value) = &self.status_info {
27 crate::validate::Validate::validate(value)
28 .map_err(|error| error.in_field("statusInfo"))?;
29 }
30 Ok(())
31 }
32}
33#[cfg(not(feature = "alloc"))]
34#[derive(Debug, Clone, PartialEq, Eq)]
35#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
36pub struct ResetResponse<
37 CustomDataType = crate::NoCustomData,
38 const STATUS_INFO_ADDITIONAL_INFO_CAP: usize = 1024usize,
39> {
40 #[cfg_attr(feature = "serde", serde(rename = "customData"))]
41 #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
42 pub custom_data: Option<CustomDataType>,
43 pub status: ResetStatusEnum,
44 #[cfg_attr(feature = "serde", serde(rename = "statusInfo"))]
45 #[cfg_attr(feature = "serde", serde(skip_serializing_if = "Option::is_none"))]
46 pub status_info: Option<StatusInfo<CustomDataType, STATUS_INFO_ADDITIONAL_INFO_CAP>>,
47}
48#[cfg(not(feature = "alloc"))]
49impl<CustomDataType, const STATUS_INFO_ADDITIONAL_INFO_CAP: usize> crate::Action
50for ResetResponse<CustomDataType, STATUS_INFO_ADDITIONAL_INFO_CAP> {
51 const ACTION: &'static str = "Reset";
52}
53#[cfg(all(feature = "validate", not(feature = "alloc")))]
54impl<
55 CustomDataType,
56 const STATUS_INFO_ADDITIONAL_INFO_CAP: usize,
57> crate::validate::Validate
58for ResetResponse<CustomDataType, STATUS_INFO_ADDITIONAL_INFO_CAP> {
59 fn validate(&self) -> Result<(), crate::validate::ValidationError> {
60 crate::validate::Validate::validate(&self.status)
61 .map_err(|error| error.in_field("status"))?;
62 if let Some(value) = &self.status_info {
63 crate::validate::Validate::validate(value)
64 .map_err(|error| error.in_field("statusInfo"))?;
65 }
66 Ok(())
67 }
68}