@@ -28,13 +28,15 @@ typedef enum {
28
28
KIND_PATH ,
29
29
KIND_RESPONSE ,
30
30
KIND_PARAMETER ,
31
+ KIND_TITLE ,
31
32
} openapiKind ;
32
33
33
34
static kindDefinition OpenAPIKinds [] = {
34
35
{ true, 'd' , "schema" , "schemas" },
35
36
{ true, 'p' , "path" , "paths" },
36
37
{ true, 'R' , "response" , "responses" },
37
38
{ true, 'P' , "parameter" , "parameters" },
39
+ { true, 't' , "title" , "titles" },
38
40
};
39
41
40
42
#define KEY_UNKNOWN KEYWORD_NONE
@@ -45,6 +47,8 @@ enum openapiKeys {
45
47
KEY_PARAMETERS ,
46
48
KEY_RESPONSES ,
47
49
KEY_DEFINITIONS ,
50
+ KEY_INFO ,
51
+ KEY_TITLE ,
48
52
};
49
53
50
54
static const keywordTable OpenAPIKeywordTable [] = {
@@ -54,6 +58,8 @@ static const keywordTable OpenAPIKeywordTable[] = {
54
58
{ "parameters" , KEY_PARAMETERS },
55
59
{ "responses" , KEY_RESPONSES },
56
60
{ "definitions" , KEY_DEFINITIONS },
61
+ { "info" , KEY_INFO },
62
+ { "title" , KEY_TITLE },
57
63
};
58
64
59
65
struct yamlBlockTypeStack {
@@ -195,6 +201,11 @@ static const enum openapiKeys definitions2Keys[] = {
195
201
KEY_DEFINITIONS ,
196
202
};
197
203
204
+ static const enum openapiKeys title3Keys [] = {
205
+ KEY_TITLE ,
206
+ KEY_INFO ,
207
+ };
208
+
198
209
const struct tagSource tagSources [] = {
199
210
{
200
211
KIND_PATH ,
@@ -233,6 +244,14 @@ const struct tagSource tagSources[] = {
233
244
},
234
245
};
235
246
247
+ const struct tagSource tagValueSources [] = {
248
+ {
249
+ KIND_TITLE ,
250
+ title3Keys ,
251
+ ARRAY_SIZE (title3Keys ),
252
+ },
253
+ };
254
+
236
255
static void handleToken (struct sOpenAPISubparser * openapi , yaml_token_t * token ,
237
256
const struct tagSource * tss , size_t ts_count )
238
257
{
@@ -260,6 +279,12 @@ static void handleKey(struct sOpenAPISubparser *openapi,
260
279
handleToken (openapi , token , tagSources , ARRAY_SIZE (tagSources ));
261
280
}
262
281
282
+ static void handleValue (struct sOpenAPISubparser * openapi ,
283
+ yaml_token_t * token )
284
+ {
285
+ handleToken (openapi , token , tagValueSources , ARRAY_SIZE (tagValueSources ));
286
+ }
287
+
263
288
static void openapiPlayStateMachine (struct sOpenAPISubparser * openapi ,
264
289
yaml_token_t * token )
265
290
{
@@ -285,6 +310,8 @@ static void openapiPlayStateMachine (struct sOpenAPISubparser *openapi,
285
310
break ;
286
311
case DSTAT_LAST_VALUE :
287
312
TRACE_PRINT (" value: %s" , (char * )token -> data .scalar .value );
313
+ if (openapi -> type_stack )
314
+ handleValue (openapi , token );
288
315
break ;
289
316
default :
290
317
break ;
0 commit comments