Skip to content

Commit eacc2fc

Browse files
authored
feat(schema): resolve bare $dynamicRef via $dynamicAnchor index (#2913)
* feat(schema): resolve $dynamicRef against $dynamicAnchor via OpenApiSchemaReference Implements document-scoped $dynamicRef resolution per JSON Schema 2020-12 §8.2.3.2. Bare $dynamicRef schemas (no $ref) now deserialize as OpenApiSchemaReference whose Target resolves via per-document $dynamicAnchor and $anchor registries in OpenApiWorkspace. Resolution order in Target: 1. $dynamicAnchor index (single candidate → resolved automatically) 2. $anchor fallback when zero $dynamicAnchor candidates exist (per §8.2.3.2) 3. null when ambiguous (multiple candidates need dynamic-scope tracking) Anchor registries are populated by recursively walking the entire document tree: component schemas, reusable component definitions (parameters, responses, request bodies, headers, callbacks, path items, media types), inline schemas (paths, operations, webhooks), and all nested subschema locations ($defs, properties, items, allOf, if/then/else, etc.). Anchor registration is merged into RegisterSchemaIdentifiers (#2918) so the schema tree is walked once instead of twice. IsDynamicRefOnly is computed from whether $dynamicRef is set and ReferenceV3 does not point to a component path — no field to forget when building from the object model. ResolveDynamicAnchorInContext special-cases OpenApiSchemaReference to read from Reference.DynamicAnchor/Definitions directly, never falling through to Target. Reference holder guards prevent the structural walk from crossing document boundaries through OpenApiParameterReference, OpenApiResponseReference, etc. Test snapshots use a custom JsonConverter<IOpenApiSchema> that routes schema serialization through the native OpenAPI writer, avoiding reflection cycles from recursive $dynamicRef. Public APIs for consumers tracking dynamic scope: - GetDynamicAnchorCandidates(doc, anchorName): returns all candidate schemas - ResolveDynamicAnchorInContext(contextSchema, anchorName): resolves against a specific entry-point schema's $defs without crossing reference boundaries Known limitation: relative URI resolution in $dynamicRef is not yet implemented (tracked as #2928). Cross-document resolution works for absolute URIs only. * fix(workspace): only consider authored $dynamicAnchor in ResolveDynamicAnchorInContext $defs entries that are themselves $refs no longer fall through to the referenced target's $dynamicAnchor. OpenApiSchemaReference.DynamicAnchor delegates to Target when the authored sibling is empty, which violated the method's context-bound intent. Adds AuthoredDynamicAnchor helper that reads Reference.DynamicAnchor for OpenApiSchemaReference and the plain property otherwise. Both $defs lookups (non-reference context branch and reference-holder branch) now use it. Tests cover both branches in V31 and V32: a Container schema with an aliased $ref def whose Target declares $dynamicAnchor: node, plus a reference holder whose Reference.Definitions carries the same aliased entry.
1 parent 0ace243 commit eacc2fc

20 files changed

Lines changed: 3418 additions & 140 deletions
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
```
22
33
BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
4-
AMD EPYC 7763 2.45GHz, 1 CPU, 4 logical and 2 physical cores
4+
AMD EPYC 7763 2.61GHz, 1 CPU, 4 logical and 2 physical cores
55
.NET SDK 10.0.301
66
[Host] : .NET 8.0.28 (8.0.28, 8.0.2826.26413), X64 RyuJIT x86-64-v3
77
ShortRun : .NET 8.0.28 (8.0.28, 8.0.2826.26413), X64 RyuJIT x86-64-v3
@@ -12,9 +12,9 @@ WarmupCount=3
1212
```
1313
| Method | Mean | Error | StdDev | Gen0 | Gen1 | Gen2 | Allocated |
1414
|------------- |---------------:|--------------:|-------------:|-----------:|-----------:|----------:|-------------:|
15-
| PetStoreYaml | 491.4 μs | 72.31 μs | 3.96 μs | 18.5547 | 3.9063 | - | 314.57 KB |
16-
| PetStoreJson | 199.4 μs | 19.87 μs | 1.09 μs | 10.7422 | 2.9297 | - | 176.42 KB |
17-
| GHESYaml | 939,520.0 μs | 187,454.80 μs | 10,275.03 μs | 18000.0000 | 17000.0000 | 3000.0000 | 256688.91 KB |
18-
| GHESJson | 282,084.8 μs | 100,501.66 μs | 5,508.84 μs | 6000.0000 | 5000.0000 | 1000.0000 | 113857.84 KB |
19-
| GHESNextYaml | 1,152,354.7 μs | 45,814.56 μs | 2,511.25 μs | 30000.0000 | 18000.0000 | 3000.0000 | 452765.4 KB |
20-
| GHESNextJson | 549,904.6 μs | 80,767.59 μs | 4,427.14 μs | 20000.0000 | 10000.0000 | 2000.0000 | 314529.52 KB |
15+
| PetStoreYaml | 490.9 μs | 282.59 μs | 15.49 μs | 19.5313 | 3.9063 | - | 321.99 KB |
16+
| PetStoreJson | 203.9 μs | 15.77 μs | 0.86 μs | 10.7422 | 1.9531 | - | 183.85 KB |
17+
| GHESYaml | 884,972.5 μs | 24,370.58 μs | 1,335.83 μs | 18000.0000 | 17000.0000 | 3000.0000 | 258042.35 KB |
18+
| GHESJson | 284,350.7 μs | 61,542.17 μs | 3,373.33 μs | 8000.0000 | 7000.0000 | 2000.0000 | 115210.25 KB |
19+
| GHESNextYaml | 1,133,321.0 μs | 304,160.14 μs | 16,672.04 μs | 30000.0000 | 18000.0000 | 3000.0000 | 454924.16 KB |
20+
| GHESNextJson | 547,652.0 μs | 183,032.67 μs | 10,032.64 μs | 20000.0000 | 10000.0000 | 2000.0000 | 316687.77 KB |
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
Method,Job,AnalyzeLaunchVariance,EvaluateOverhead,MaxAbsoluteError,MaxRelativeError,MinInvokeCount,MinIterationTime,OutlierMode,Affinity,EnvironmentVariables,Jit,LargeAddressAware,Platform,PowerPlanMode,Runtime,AllowVeryLargeObjects,Concurrent,CpuGroups,Force,HeapAffinitizeMask,HeapCount,NoAffinitize,RetainVm,Server,Arguments,BuildConfiguration,Clock,EngineFactory,NuGetReferences,Toolchain,IsMutator,InvocationCount,IterationCount,IterationTime,LaunchCount,MaxIterationCount,MaxWarmupIterationCount,MemoryRandomization,MinIterationCount,MinWarmupIterationCount,RunStrategy,UnrollFactor,WarmupCount,Mean,Error,StdDev,Gen0,Gen1,Gen2,Allocated
2-
PetStoreYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,491.4 μs,72.31 μs,3.96 μs,18.5547,3.9063,0.0000,314.57 KB
3-
PetStoreJson,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,199.4 μs,19.87 μs,1.09 μs,10.7422,2.9297,0.0000,176.42 KB
4-
GHESYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"939,520.0 μs","187,454.80 μs","10,275.03 μs",18000.0000,17000.0000,3000.0000,256688.91 KB
5-
GHESJson,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"282,084.8 μs","100,501.66 μs","5,508.84 μs",6000.0000,5000.0000,1000.0000,113857.84 KB
6-
GHESNextYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"1,152,354.7 μs","45,814.56 μs","2,511.25 μs",30000.0000,18000.0000,3000.0000,452765.4 KB
7-
GHESNextJson,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"549,904.6 μs","80,767.59 μs","4,427.14 μs",20000.0000,10000.0000,2000.0000,314529.52 KB
2+
PetStoreYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,490.9 μs,282.59 μs,15.49 μs,19.5313,3.9063,0.0000,321.99 KB
3+
PetStoreJson,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,203.9 μs,15.77 μs,0.86 μs,10.7422,1.9531,0.0000,183.85 KB
4+
GHESYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"884,972.5 μs","24,370.58 μs","1,335.83 μs",18000.0000,17000.0000,3000.0000,258042.35 KB
5+
GHESJson,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"284,350.7 μs","61,542.17 μs","3,373.33 μs",8000.0000,7000.0000,2000.0000,115210.25 KB
6+
GHESNextYaml,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"1,133,321.0 μs","304,160.14 μs","16,672.04 μs",30000.0000,18000.0000,3000.0000,454924.16 KB
7+
GHESNextJson,ShortRun,False,Default,Default,Default,Default,Default,Default,1111,Empty,RyuJit,Default,X64,8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c,.NET 8.0,False,True,False,True,Default,Default,False,False,False,Default,Default,Default,Default,Default,Default,Default,Default,3,Default,1,Default,Default,Default,Default,Default,Default,16,3,"547,652.0 μs","183,032.67 μs","10,032.64 μs",20000.0000,10000.0000,2000.0000,316687.77 KB

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.Descriptions-report.html

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<html lang='en'>
33
<head>
44
<meta charset='utf-8' />
5-
<title>performance.Descriptions-20260629-200911</title>
5+
<title>performance.Descriptions-20260712-124928</title>
66

77
<style type="text/css">
88
table { border-collapse: collapse; display: block; width: 100%; overflow: auto; }
@@ -14,7 +14,7 @@
1414
<body>
1515
<pre><code>
1616
BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
17-
AMD EPYC 7763 2.45GHz, 1 CPU, 4 logical and 2 physical cores
17+
AMD EPYC 7763 2.61GHz, 1 CPU, 4 logical and 2 physical cores
1818
.NET SDK 10.0.301
1919
[Host] : .NET 8.0.28 (8.0.28, 8.0.2826.26413), X64 RyuJIT x86-64-v3
2020
ShortRun : .NET 8.0.28 (8.0.28, 8.0.2826.26413), X64 RyuJIT x86-64-v3
@@ -26,12 +26,12 @@
2626
<table>
2727
<thead><tr><th>Method</th><th>Mean </th><th>Error </th><th>StdDev</th><th>Gen0</th><th>Gen1</th><th>Gen2</th><th>Allocated</th>
2828
</tr>
29-
</thead><tbody><tr><td>PetStoreYaml</td><td>491.4 &mu;s</td><td>72.31 &mu;s</td><td>3.96 &mu;s</td><td>18.5547</td><td>3.9063</td><td>-</td><td>314.57 KB</td>
30-
</tr><tr><td>PetStoreJson</td><td>199.4 &mu;s</td><td>19.87 &mu;s</td><td>1.09 &mu;s</td><td>10.7422</td><td>2.9297</td><td>-</td><td>176.42 KB</td>
31-
</tr><tr><td>GHESYaml</td><td>939,520.0 &mu;s</td><td>187,454.80 &mu;s</td><td>10,275.03 &mu;s</td><td>18000.0000</td><td>17000.0000</td><td>3000.0000</td><td>256688.91 KB</td>
32-
</tr><tr><td>GHESJson</td><td>282,084.8 &mu;s</td><td>100,501.66 &mu;s</td><td>5,508.84 &mu;s</td><td>6000.0000</td><td>5000.0000</td><td>1000.0000</td><td>113857.84 KB</td>
33-
</tr><tr><td>GHESNextYaml</td><td>1,152,354.7 &mu;s</td><td>45,814.56 &mu;s</td><td>2,511.25 &mu;s</td><td>30000.0000</td><td>18000.0000</td><td>3000.0000</td><td>452765.4 KB</td>
34-
</tr><tr><td>GHESNextJson</td><td>549,904.6 &mu;s</td><td>80,767.59 &mu;s</td><td>4,427.14 &mu;s</td><td>20000.0000</td><td>10000.0000</td><td>2000.0000</td><td>314529.52 KB</td>
29+
</thead><tbody><tr><td>PetStoreYaml</td><td>490.9 &mu;s</td><td>282.59 &mu;s</td><td>15.49 &mu;s</td><td>19.5313</td><td>3.9063</td><td>-</td><td>321.99 KB</td>
30+
</tr><tr><td>PetStoreJson</td><td>203.9 &mu;s</td><td>15.77 &mu;s</td><td>0.86 &mu;s</td><td>10.7422</td><td>1.9531</td><td>-</td><td>183.85 KB</td>
31+
</tr><tr><td>GHESYaml</td><td>884,972.5 &mu;s</td><td>24,370.58 &mu;s</td><td>1,335.83 &mu;s</td><td>18000.0000</td><td>17000.0000</td><td>3000.0000</td><td>258042.35 KB</td>
32+
</tr><tr><td>GHESJson</td><td>284,350.7 &mu;s</td><td>61,542.17 &mu;s</td><td>3,373.33 &mu;s</td><td>8000.0000</td><td>7000.0000</td><td>2000.0000</td><td>115210.25 KB</td>
33+
</tr><tr><td>GHESNextYaml</td><td>1,133,321.0 &mu;s</td><td>304,160.14 &mu;s</td><td>16,672.04 &mu;s</td><td>30000.0000</td><td>18000.0000</td><td>3000.0000</td><td>454924.16 KB</td>
34+
</tr><tr><td>GHESNextJson</td><td>547,652.0 &mu;s</td><td>183,032.67 &mu;s</td><td>10,032.64 &mu;s</td><td>20000.0000</td><td>10000.0000</td><td>2000.0000</td><td>316687.77 KB</td>
3535
</tr></tbody></table>
3636
</body>
3737
</html>

performance/benchmark/BenchmarkDotNet.Artifacts/results/performance.Descriptions-report.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.
Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
```
22
33
BenchmarkDotNet v0.15.8, Linux Ubuntu 24.04.4 LTS (Noble Numbat)
4-
AMD EPYC 7763 2.45GHz, 1 CPU, 4 logical and 2 physical cores
4+
AMD EPYC 7763 2.61GHz, 1 CPU, 4 logical and 2 physical cores
55
.NET SDK 10.0.301
66
[Host] : .NET 8.0.28 (8.0.28, 8.0.2826.26413), X64 RyuJIT x86-64-v3
77
ShortRun : .NET 8.0.28 (8.0.28, 8.0.2826.26413), X64 RyuJIT x86-64-v3
@@ -10,33 +10,33 @@ Job=ShortRun IterationCount=3 LaunchCount=1
1010
WarmupCount=3
1111
1212
```
13-
| Method | Mean | Error | StdDev | Gen0 | Allocated |
14-
|---------------------------- |-------------:|----------:|----------:|-------:|----------:|
15-
| EmptyApiCallback | 14.077 ns | 5.879 ns | 0.3223 ns | 0.0019 | 32 B |
16-
| EmptyApiComponents | 14.353 ns | 27.787 ns | 1.5231 ns | 0.0067 | 112 B |
17-
| EmptyApiContact | 8.820 ns | 4.774 ns | 0.2617 ns | 0.0029 | 48 B |
18-
| EmptyApiDiscriminator | 12.366 ns | 17.252 ns | 0.9456 ns | 0.0029 | 48 B |
19-
| EmptyDocument | 1,227.975 ns | 78.094 ns | 4.2806 ns | 0.0668 | 1144 B |
20-
| EmptyApiEncoding | 16.017 ns | 39.797 ns | 2.1814 ns | 0.0048 | 80 B |
21-
| EmptyApiExample | 13.024 ns | 4.635 ns | 0.2541 ns | 0.0043 | 72 B |
22-
| EmptyApiExternalDocs | 14.738 ns | 18.712 ns | 1.0257 ns | 0.0024 | 40 B |
23-
| EmptyApiHeader | 13.615 ns | 12.637 ns | 0.6927 ns | 0.0048 | 80 B |
24-
| EmptyApiInfo | 13.339 ns | 36.579 ns | 2.0050 ns | 0.0048 | 80 B |
25-
| EmptyApiLicense | 11.728 ns | 27.400 ns | 1.5019 ns | 0.0029 | 48 B |
26-
| EmptyApiLink | 14.362 ns | 51.417 ns | 2.8183 ns | 0.0043 | 72 B |
27-
| EmptyApiMediaType | 11.310 ns | 2.030 ns | 0.1113 ns | 0.0048 | 80 B |
28-
| EmptyApiOAuthFlow | 8.204 ns | 2.441 ns | 0.1338 ns | 0.0038 | 64 B |
29-
| EmptyApiOAuthFlows | 11.544 ns | 20.185 ns | 1.1064 ns | 0.0038 | 64 B |
30-
| EmptyApiOperation | 76.914 ns | 36.381 ns | 1.9942 ns | 0.0224 | 376 B |
31-
| EmptyApiParameter | 12.591 ns | 24.321 ns | 1.3331 ns | 0.0057 | 96 B |
32-
| EmptyApiPathItem | 15.782 ns | 25.659 ns | 1.4064 ns | 0.0038 | 64 B |
33-
| EmptyApiPaths | 60.798 ns | 12.323 ns | 0.6755 ns | 0.0148 | 248 B |
34-
| EmptyApiRequestBody | 9.189 ns | 14.175 ns | 0.7770 ns | 0.0029 | 48 B |
35-
| EmptyApiResponse | 14.850 ns | 20.664 ns | 1.1327 ns | 0.0038 | 64 B |
36-
| EmptyApiResponses | 64.813 ns | 29.839 ns | 1.6356 ns | 0.0148 | 248 B |
37-
| EmptyApiSchema | 22.176 ns | 8.769 ns | 0.4807 ns | 0.0306 | 512 B |
38-
| EmptyApiSecurityRequirement | 16.838 ns | 11.238 ns | 0.6160 ns | 0.0062 | 104 B |
39-
| EmptyApiSecurityScheme | 11.860 ns | 15.234 ns | 0.8350 ns | 0.0062 | 104 B |
40-
| EmptyApiServer | 7.778 ns | 3.765 ns | 0.2063 ns | 0.0033 | 56 B |
41-
| EmptyApiServerVariable | 13.466 ns | 11.117 ns | 0.6093 ns | 0.0029 | 48 B |
42-
| EmptyApiTag | 8.794 ns | 5.167 ns | 0.2832 ns | 0.0043 | 72 B |
13+
| Method | Mean | Error | StdDev | Gen0 | Allocated |
14+
|---------------------------- |-------------:|-----------:|----------:|-------:|----------:|
15+
| EmptyApiCallback | 6.153 ns | 1.5524 ns | 0.0851 ns | 0.0019 | 32 B |
16+
| EmptyApiComponents | 13.051 ns | 12.0445 ns | 0.6602 ns | 0.0067 | 112 B |
17+
| EmptyApiContact | 7.470 ns | 6.2102 ns | 0.3404 ns | 0.0029 | 48 B |
18+
| EmptyApiDiscriminator | 12.672 ns | 13.5456 ns | 0.7425 ns | 0.0029 | 48 B |
19+
| EmptyDocument | 1,125.095 ns | 84.1354 ns | 4.6117 ns | 0.0687 | 1160 B |
20+
| EmptyApiEncoding | 11.062 ns | 4.7529 ns | 0.2605 ns | 0.0048 | 80 B |
21+
| EmptyApiExample | 7.975 ns | 1.2050 ns | 0.0661 ns | 0.0043 | 72 B |
22+
| EmptyApiExternalDocs | 13.252 ns | 10.5544 ns | 0.5785 ns | 0.0024 | 40 B |
23+
| EmptyApiHeader | 14.924 ns | 7.4238 ns | 0.4069 ns | 0.0048 | 80 B |
24+
| EmptyApiInfo | 15.859 ns | 17.8903 ns | 0.9806 ns | 0.0048 | 80 B |
25+
| EmptyApiLicense | 9.133 ns | 27.3655 ns | 1.5000 ns | 0.0029 | 48 B |
26+
| EmptyApiLink | 15.451 ns | 14.1755 ns | 0.7770 ns | 0.0043 | 72 B |
27+
| EmptyApiMediaType | 10.330 ns | 10.0944 ns | 0.5533 ns | 0.0048 | 80 B |
28+
| EmptyApiOAuthFlow | 11.289 ns | 35.2986 ns | 1.9348 ns | 0.0038 | 64 B |
29+
| EmptyApiOAuthFlows | 8.992 ns | 7.2445 ns | 0.3971 ns | 0.0038 | 64 B |
30+
| EmptyApiOperation | 71.454 ns | 10.5799 ns | 0.5799 ns | 0.0224 | 376 B |
31+
| EmptyApiParameter | 14.482 ns | 13.1230 ns | 0.7193 ns | 0.0057 | 96 B |
32+
| EmptyApiPathItem | 10.780 ns | 20.0935 ns | 1.1014 ns | 0.0038 | 64 B |
33+
| EmptyApiPaths | 64.184 ns | 7.0932 ns | 0.3888 ns | 0.0148 | 248 B |
34+
| EmptyApiRequestBody | 7.130 ns | 1.7039 ns | 0.0934 ns | 0.0029 | 48 B |
35+
| EmptyApiResponse | 10.824 ns | 31.3218 ns | 1.7169 ns | 0.0038 | 64 B |
36+
| EmptyApiResponses | 57.075 ns | 2.8416 ns | 0.1558 ns | 0.0148 | 248 B |
37+
| EmptyApiSchema | 22.121 ns | 6.6296 ns | 0.3634 ns | 0.0306 | 512 B |
38+
| EmptyApiSecurityRequirement | 15.320 ns | 1.8307 ns | 0.1003 ns | 0.0062 | 104 B |
39+
| EmptyApiSecurityScheme | 14.596 ns | 36.8580 ns | 2.0203 ns | 0.0062 | 104 B |
40+
| EmptyApiServer | 7.890 ns | 2.0641 ns | 0.1131 ns | 0.0033 | 56 B |
41+
| EmptyApiServerVariable | 8.140 ns | 0.7516 ns | 0.0412 ns | 0.0029 | 48 B |
42+
| EmptyApiTag | 10.418 ns | 11.4961 ns | 0.6301 ns | 0.0043 | 72 B |

0 commit comments

Comments
 (0)