|
1 | 1 | use indexmap::IndexMap; |
2 | | -use serde::{Serialize, Serializer}; |
| 2 | +use serde::{Serialize}; |
3 | 3 | use std::collections::HashMap; |
4 | 4 |
|
5 | 5 | #[derive(Debug, Serialize)] |
@@ -62,52 +62,12 @@ pub struct Parameter { |
62 | 62 | pub deprecated: Option<Deprecation>, |
63 | 63 | } |
64 | 64 |
|
65 | | -#[derive(Debug)] |
| 65 | +#[derive(Debug, Serialize)] |
66 | 66 | pub struct Body { |
67 | 67 | pub description: String, |
68 | 68 | pub required: bool, |
69 | 69 | } |
70 | 70 |
|
71 | | -impl Serialize for Body { |
72 | | - fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> |
73 | | - where |
74 | | - S: Serializer, |
75 | | - { |
76 | | - use serde::ser::SerializeStruct; |
77 | | - |
78 | | - let mut state = if self.required { |
79 | | - serializer.serialize_struct("Body", 2)? |
80 | | - } else { |
81 | | - serializer.serialize_struct("Body", 1)? |
82 | | - }; |
83 | | - |
84 | | - if self.required { |
85 | | - state.serialize_field("description", &self.description)?; |
86 | | - } |
87 | | - state.serialize_field("required", &self.required)?; |
88 | | - state.end() |
89 | | - } |
90 | | -} |
91 | | - |
92 | | -#[cfg(test)] |
93 | | -mod tests { |
94 | | - use super::*; |
95 | | - |
96 | | - #[test] |
97 | | - fn test_body_serialization_with_required_false() { |
98 | | - let body = Body { |
99 | | - description: "Test description".to_string(), |
100 | | - required: false, |
101 | | - }; |
102 | | - |
103 | | - let json = serde_json::to_string(&body).unwrap(); |
104 | | - let parsed: serde_json::Value = serde_json::from_str(&json).unwrap(); |
105 | | - |
106 | | - assert!(parsed.get("description").is_none()); |
107 | | - assert_eq!(parsed["required"], false); |
108 | | - } |
109 | | -} |
110 | | - |
111 | 71 | #[derive(Debug, Serialize)] |
112 | 72 | pub struct Deprecation { |
113 | 73 | pub version: String, |
|
0 commit comments