Skip to main content

oag_core/parse/
response.rs

1use indexmap::IndexMap;
2use serde::{Deserialize, Serialize};
3
4use super::media_type::MediaType;
5
6/// A response definition.
7#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
8pub struct Response {
9    pub description: String,
10
11    #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
12    pub content: IndexMap<String, MediaType>,
13
14    #[serde(default, skip_serializing_if = "IndexMap::is_empty")]
15    pub headers: IndexMap<String, serde_json::Value>,
16}
17
18/// A reference or inline response.
19#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum ResponseOrRef {
22    Ref {
23        #[serde(rename = "$ref")]
24        ref_path: String,
25    },
26    Response(Response),
27}