datadog_api_client/datadogV2/model/
model_observability_pipeline_socket_source_framing.rs1use serde::{Deserialize, Deserializer, Serialize};
5
6#[non_exhaustive]
8#[derive(Clone, Debug, PartialEq, Serialize)]
9#[serde(untagged)]
10pub enum ObservabilityPipelineSocketSourceFraming {
11 ObservabilityPipelineSocketSourceFramingNewlineDelimited(
12 Box<crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingNewlineDelimited>,
13 ),
14 ObservabilityPipelineSocketSourceFramingBytes(
15 Box<crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingBytes>,
16 ),
17 ObservabilityPipelineSocketSourceFramingCharacterDelimited(
18 Box<crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingCharacterDelimited>,
19 ),
20 ObservabilityPipelineSocketSourceFramingOctetCounting(
21 Box<crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingOctetCounting>,
22 ),
23 ObservabilityPipelineSocketSourceFramingChunkedGelf(
24 Box<crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingChunkedGelf>,
25 ),
26 UnparsedObject(crate::datadog::UnparsedObject),
27}
28
29impl<'de> Deserialize<'de> for ObservabilityPipelineSocketSourceFraming {
30 fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
31 where
32 D: Deserializer<'de>,
33 {
34 let value: serde_json::Value = Deserialize::deserialize(deserializer)?;
35 if let Ok(_v) = serde_json::from_value::<
36 Box<crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingNewlineDelimited>,
37 >(value.clone())
38 {
39 if !_v._unparsed {
40 return Ok(ObservabilityPipelineSocketSourceFraming::ObservabilityPipelineSocketSourceFramingNewlineDelimited(_v));
41 }
42 }
43 if let Ok(_v) = serde_json::from_value::<
44 Box<crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingBytes>,
45 >(value.clone())
46 {
47 if !_v._unparsed {
48 return Ok(ObservabilityPipelineSocketSourceFraming::ObservabilityPipelineSocketSourceFramingBytes(_v));
49 }
50 }
51 if let Ok(_v) = serde_json::from_value::<
52 Box<
53 crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingCharacterDelimited,
54 >,
55 >(value.clone())
56 {
57 if !_v._unparsed {
58 return Ok(ObservabilityPipelineSocketSourceFraming::ObservabilityPipelineSocketSourceFramingCharacterDelimited(_v));
59 }
60 }
61 if let Ok(_v) = serde_json::from_value::<
62 Box<crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingOctetCounting>,
63 >(value.clone())
64 {
65 if !_v._unparsed {
66 return Ok(ObservabilityPipelineSocketSourceFraming::ObservabilityPipelineSocketSourceFramingOctetCounting(_v));
67 }
68 }
69 if let Ok(_v) = serde_json::from_value::<
70 Box<crate::datadogV2::model::ObservabilityPipelineSocketSourceFramingChunkedGelf>,
71 >(value.clone())
72 {
73 if !_v._unparsed {
74 return Ok(ObservabilityPipelineSocketSourceFraming::ObservabilityPipelineSocketSourceFramingChunkedGelf(_v));
75 }
76 }
77
78 return Ok(ObservabilityPipelineSocketSourceFraming::UnparsedObject(
79 crate::datadog::UnparsedObject { value },
80 ));
81 }
82}