Skip to content

Commit bce6bb6

Browse files
committed
Always specify body.required
1 parent f987030 commit bce6bb6

File tree

1 file changed

+2
-42
lines changed
  • compiler-rs/clients_schema_to_rest_api_spec/src

1 file changed

+2
-42
lines changed

compiler-rs/clients_schema_to_rest_api_spec/src/spec.rs

Lines changed: 2 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use indexmap::IndexMap;
2-
use serde::{Serialize, Serializer};
2+
use serde::{Serialize};
33
use std::collections::HashMap;
44

55
#[derive(Debug, Serialize)]
@@ -62,52 +62,12 @@ pub struct Parameter {
6262
pub deprecated: Option<Deprecation>,
6363
}
6464

65-
#[derive(Debug)]
65+
#[derive(Debug, Serialize)]
6666
pub struct Body {
6767
pub description: String,
6868
pub required: bool,
6969
}
7070

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-
11171
#[derive(Debug, Serialize)]
11272
pub struct Deprecation {
11373
pub version: String,

0 commit comments

Comments
 (0)