schemadoc_diff/schemas/openapi310/
context.rs1use crate::schemas::openapi310::schema::*;
2
3pub fn deref_schema<'a>(
4 components: &'a Option<Components>,
5 reference: &str,
6) -> Option<&'a Schema> {
7 components.as_ref().and_then(|components| {
8 components.schemas.as_ref().and_then(|map| {
9 map.get(&reference.replace("#/components/schemas/", ""))
10 .map(|may_be_schema| match may_be_schema {
11 MayBeRef310::Value(value) => value,
12 _ => unimplemented!(),
13 })
14 })
15 })
16}
17
18pub fn deref_parameter<'a>(
19 components: &'a Option<Components>,
20 reference: &str,
21) -> Option<&'a Parameter> {
22 components.as_ref().and_then(|components| {
23 components.parameters.as_ref().and_then(|map| {
24 map.get(&reference.replace("#/components/parameters/", ""))
25 .map(|may_be_parameter| match may_be_parameter {
26 MayBeRef310::Value(value) => value,
27 _ => unimplemented!(),
28 })
29 })
30 })
31}
32
33pub fn deref_example<'a>(
34 swagger: &'a OpenApi310,
35 reference: &str,
36) -> Option<&'a Example> {
37 swagger.components.as_ref().and_then(|components| {
38 components.examples.as_ref().and_then(|map| {
39 map.get(&reference.replace("#/components/examples/", ""))
40 .map(|may_be_example| match may_be_example {
41 MayBeRef310::Value(value) => value,
42 _ => unimplemented!(),
43 })
44 })
45 })
46}
47
48pub fn deref_request_body<'a>(
49 swagger: &'a OpenApi310,
50 reference: &str,
51) -> Option<&'a RequestBody> {
52 swagger.components.as_ref().and_then(|components| {
53 components.request_bodies.as_ref().and_then(|map| {
54 map.get(&reference.replace("#/components/requestBodies/", ""))
55 .map(|may_be_request_body| match may_be_request_body {
56 MayBeRef310::Value(value) => value,
57 _ => unimplemented!(),
58 })
59 })
60 })
61}
62
63pub fn deref_header<'a>(
64 swagger: &'a OpenApi310,
65 reference: &str,
66) -> Option<&'a Header> {
67 swagger.components.as_ref().and_then(|components| {
68 components.headers.as_ref().and_then(|map| {
69 map.get(&reference.replace("#/components/headers/", ""))
70 .map(|may_be_header| match may_be_header {
71 MayBeRef310::Value(value) => value,
72 _ => unimplemented!(),
73 })
74 })
75 })
76}
77
78pub fn deref_security_scheme<'a>(
79 swagger: &'a OpenApi310,
80 reference: &str,
81) -> Option<&'a SecurityScheme> {
82 swagger.components.as_ref().and_then(|components| {
83 components.security_schemes.as_ref().and_then(|map| {
84 map.get(&reference.replace("#/components/securitySchemes/", ""))
85 .map(|may_be_security_scheme| match may_be_security_scheme {
86 MayBeRef310::Value(value) => value,
87 _ => unimplemented!(),
88 })
89 })
90 })
91}
92
93pub fn deref_link<'a>(
94 swagger: &'a OpenApi310,
95 reference: &str,
96) -> Option<&'a Link> {
97 swagger.components.as_ref().and_then(|components| {
98 components.links.as_ref().and_then(|map| {
99 map.get(&reference.replace("#/components/links/", "")).map(
100 |may_be_link| match may_be_link {
101 MayBeRef310::Value(value) => value,
102 _ => unimplemented!(),
103 },
104 )
105 })
106 })
107}
108
109pub fn deref_response<'a>(
110 swagger: &'a OpenApi310,
111 reference: &str,
112) -> Option<&'a Response> {
113 swagger.components.as_ref().and_then(|components| {
114 components.responses.as_ref().and_then(|map| {
115 map.get(&reference.replace("#/components/responses/", ""))
116 .map(|may_be_response| match may_be_response {
117 MayBeRef310::Value(value) => value,
118 _ => unimplemented!(),
119 })
120 })
121 })
122}