feat: add 6.3.8 required fields - #662
Conversation
There was a problem hiding this comment.
Pull request overview
This PR extends the CSAF trait facade to expose additional text-bearing fields needed for implementing CSAF 6.3.8 spell-check validations across CSAF 2.0 and 2.1 documents.
Changes:
- Renames the document reference abstraction from
DocumentReferenceTraitto the more generalReferenceTraitand updates relevant validations to use it. - Adds new trait accessors for spell-check-relevant fields (e.g., acknowledgments, aggregate severity, aliases, remediation details/entitlements/restart-required, involvement summary, threat details, note audience/text).
- Introduces new traits/modules (
AcknowledgmentTrait,AggregateSeverityTrait,RestartRequiredTrait) and wires them into the trait/module structure.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| csaf-rs/src/validations/test_6_2_11.rs | Updates validation imports to use ReferenceTrait for canonical URL checks. |
| csaf-rs/src/validations/test_6_1_27_19.rs | Updates validation imports to use ReferenceTrait for superseding-document reference checks. |
| csaf-rs/src/validations/test_6_1_27_02.rs | Updates validation imports to use ReferenceTrait for external reference presence checks. |
| csaf-rs/src/csaf/traits/vulnerabilities/threat_trait.rs | Adds get_details() accessor for threat details text. |
| csaf-rs/src/csaf/traits/vulnerabilities/restart_required_trait.rs | Adds a trait to normalize access to restart-required info across CSAF versions. |
| csaf-rs/src/csaf/traits/vulnerabilities/remediation_trait.rs | Adds accessors for remediation details/entitlements/restart-required and associated type for restart-required. |
| csaf-rs/src/csaf/traits/vulnerabilities/mod.rs | Exposes the new restart_required_trait module. |
| csaf-rs/src/csaf/traits/vulnerabilities/involvement_trait.rs | Adds get_summary() accessor for involvement summary text. |
| csaf-rs/src/csaf/traits/vulnerabilities_trait.rs | Adds reference/acknowledgment/title accessors to vulnerabilities for spell-check traversal. |
| csaf-rs/src/csaf/traits/shared/references_trait.rs | Renames DocumentReferenceTrait to ReferenceTrait and keeps CSAF 2.0→2.1 category normalization. |
| csaf-rs/src/csaf/traits/shared/note_trait.rs | Adds accessors for audience and text fields on notes. |
| csaf-rs/src/csaf/traits/shared/mod.rs | Adds shared modules for acknowledgments and references. |
| csaf-rs/src/csaf/traits/shared/acknowledgment_trait.rs | Introduces a trait for extracting acknowledgment fields (names/org/summary/urls). |
| csaf-rs/src/csaf/traits/document/tracking_trait.rs | Adds get_aliases() accessor for tracking aliases. |
| csaf-rs/src/csaf/traits/document/publisher_trait.rs | Adds accessors for publisher name/namespace/contact/issuing authority. |
| csaf-rs/src/csaf/traits/document/mod.rs | Adds aggregate severity trait module; removes document references module. |
| csaf-rs/src/csaf/traits/document/generator_trait.rs | Expands generator trait with engine name/version accessors. |
| csaf-rs/src/csaf/traits/document/distribution_trait.rs | Adds get_text() accessor for distribution free-text. |
| csaf-rs/src/csaf/traits/document/aggregate_severity_trait.rs | Introduces accessors for aggregate severity namespace/text. |
| csaf-rs/src/csaf/traits/document_trait.rs | Adds document-level acknowledgments and aggregate severity accessors; switches to ReferenceTrait. |
| csaf-rs/src/csaf_traits.rs | Updates the public trait re-export facade for new/renamed traits. |
Comments suppressed due to low confidence (1)
csaf-rs/src/csaf/traits/shared/references_trait.rs:6
- The doc comment says "Trait representing document references", but
ReferenceTraitis now used for references beyond just/document/references(e.g., vulnerability references). Consider updating the wording to avoid misleading API documentation.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
CSAF Validation Benchmark
Details
| Benchmark suite | Current: 504b655 | Previous: 90ba368 | Ratio |
|---|---|---|---|
csaf_2_0_tests/6.1.1 |
103721 ns/iter (± 892) |
125287 ns/iter (± 190) |
0.83 |
csaf_2_0_tests/6.1.2 |
41598 ns/iter (± 398) |
50468 ns/iter (± 89) |
0.82 |
csaf_2_0_tests/6.1.3 |
9865 ns/iter (± 83) |
13029 ns/iter (± 21) |
0.76 |
csaf_2_0_tests/6.1.4 |
22150 ns/iter (± 260) |
28066 ns/iter (± 94) |
0.79 |
csaf_2_0_tests/6.1.5 |
10828 ns/iter (± 72) |
13654 ns/iter (± 11) |
0.79 |
csaf_2_0_tests/6.1.6 |
29079 ns/iter (± 584) |
39010 ns/iter (± 49) |
0.75 |
csaf_2_0_tests/6.1.7 |
26213 ns/iter (± 292) |
33309 ns/iter (± 32) |
0.79 |
csaf_2_0_tests/6.1.8 |
69261 ns/iter (± 1846) |
88449 ns/iter (± 313) |
0.78 |
csaf_2_0_tests/6.1.9 |
55598 ns/iter (± 809) |
66310 ns/iter (± 1602) |
0.84 |
csaf_2_0_tests/6.1.10 |
114106 ns/iter (± 711) |
128344 ns/iter (± 2142) |
0.89 |
csaf_2_0_tests/6.1.11 |
11311 ns/iter (± 274) |
13758 ns/iter (± 48) |
0.82 |
csaf_2_0_tests/6.1.12 |
27791 ns/iter (± 165) |
30213 ns/iter (± 24) |
0.92 |
csaf_2_0_tests/6.1.13 |
27087 ns/iter (± 253) |
32313 ns/iter (± 104) |
0.84 |
csaf_2_0_tests/6.1.15 |
9661 ns/iter (± 94) |
12376 ns/iter (± 853) |
0.78 |
csaf_2_0_tests/6.1.16 |
38242 ns/iter (± 336) |
48775 ns/iter (± 463) |
0.78 |
csaf_2_0_tests/6.1.17 |
11325 ns/iter (± 361) |
13483 ns/iter (± 37) |
0.84 |
csaf_2_0_tests/6.1.18 |
13426 ns/iter (± 183) |
16046 ns/iter (± 48) |
0.84 |
csaf_2_0_tests/6.1.19 |
13203 ns/iter (± 117) |
15763 ns/iter (± 27) |
0.84 |
csaf_2_0_tests/6.1.20 |
10971 ns/iter (± 128) |
13485 ns/iter (± 62) |
0.81 |
csaf_2_0_tests/6.1.21 |
40852 ns/iter (± 412) |
53517 ns/iter (± 71) |
0.76 |
csaf_2_0_tests/6.1.22 |
47447 ns/iter (± 371) |
65653 ns/iter (± 367) |
0.72 |
csaf_2_0_tests/6.1.23 |
12459 ns/iter (± 158) |
15737 ns/iter (± 21) |
0.79 |
csaf_2_0_tests/6.1.24 |
12828 ns/iter (± 71) |
15308 ns/iter (± 36) |
0.84 |
csaf_2_0_tests/6.1.25 |
29723 ns/iter (± 178) |
35743 ns/iter (± 108) |
0.83 |
csaf_2_0_tests/6.1.26 |
16427 ns/iter (± 201) |
20087 ns/iter (± 33) |
0.82 |
csaf_2_0_tests/6.1.27.1 |
10484 ns/iter (± 158) |
13515 ns/iter (± 83) |
0.78 |
csaf_2_0_tests/6.1.27.2 |
10344 ns/iter (± 87) |
13483 ns/iter (± 8) |
0.77 |
csaf_2_0_tests/6.1.27.3 |
9815 ns/iter (± 115) |
13184 ns/iter (± 55) |
0.74 |
csaf_2_0_tests/6.1.27.4 |
9477 ns/iter (± 51) |
13368 ns/iter (± 19) |
0.71 |
csaf_2_0_tests/6.1.27.5 |
10025 ns/iter (± 73) |
13812 ns/iter (± 33) |
0.73 |
csaf_2_0_tests/6.1.27.6 |
9663 ns/iter (± 546) |
13386 ns/iter (± 50) |
0.72 |
csaf_2_0_tests/6.1.27.7 |
9808 ns/iter (± 107) |
12402 ns/iter (± 39) |
0.79 |
csaf_2_0_tests/6.1.27.8 |
9959 ns/iter (± 184) |
12660 ns/iter (± 16) |
0.79 |
csaf_2_0_tests/6.1.27.9 |
20812 ns/iter (± 64) |
25435 ns/iter (± 32) |
0.82 |
csaf_2_0_tests/6.1.27.10 |
10886 ns/iter (± 98) |
13970 ns/iter (± 68) |
0.78 |
csaf_2_0_tests/6.1.27.11 |
10344 ns/iter (± 170) |
13110 ns/iter (± 13) |
0.79 |
csaf_2_0_tests/6.1.28 |
20671 ns/iter (± 566) |
24597 ns/iter (± 23) |
0.84 |
csaf_2_0_tests/6.1.29 |
9954 ns/iter (± 209) |
12488 ns/iter (± 26) |
0.80 |
csaf_2_0_tests/6.1.30 |
34413 ns/iter (± 304) |
45131 ns/iter (± 88) |
0.76 |
csaf_2_0_tests/6.1.31 |
29120 ns/iter (± 195) |
34119 ns/iter (± 44) |
0.85 |
csaf_2_0_tests/6.1.32 |
10003 ns/iter (± 37) |
12678 ns/iter (± 36) |
0.79 |
csaf_2_0_tests/6.1.33 |
15697 ns/iter (± 121) |
19541 ns/iter (± 38) |
0.80 |
csaf_2_0_tests/6.2.1 |
129389 ns/iter (± 1289) |
149650 ns/iter (± 1175) |
0.86 |
csaf_2_0_tests/6.2.2 |
17643 ns/iter (± 74) |
20758 ns/iter (± 33) |
0.85 |
csaf_2_0_tests/6.2.3 |
16838 ns/iter (± 144) |
20063 ns/iter (± 39) |
0.84 |
csaf_2_0_tests/6.2.4 |
16928 ns/iter (± 191) |
19998 ns/iter (± 32) |
0.85 |
csaf_2_0_tests/6.2.5 |
46780 ns/iter (± 814) |
60416 ns/iter (± 51) |
0.77 |
csaf_2_0_tests/6.2.6 |
46831 ns/iter (± 669) |
60991 ns/iter (± 119) |
0.77 |
csaf_2_0_tests/6.2.7 |
14074 ns/iter (± 65) |
17020 ns/iter (± 19) |
0.83 |
csaf_2_0_tests/6.2.8 |
31724 ns/iter (± 145) |
38054 ns/iter (± 3123) |
0.83 |
csaf_2_0_tests/6.2.9 |
31948 ns/iter (± 232) |
37715 ns/iter (± 207) |
0.85 |
csaf_2_0_tests/6.2.10 |
23058 ns/iter (± 356) |
29195 ns/iter (± 111) |
0.79 |
csaf_2_0_tests/6.2.11 |
115412 ns/iter (± 1422) |
160812 ns/iter (± 757) |
0.72 |
csaf_2_0_tests/6.2.12 |
30275 ns/iter (± 966) |
35407 ns/iter (± 193) |
0.86 |
csaf_2_0_tests/6.2.13 |
637624 ns/iter (± 12047) |
785786 ns/iter (± 3265) |
0.81 |
csaf_2_0_tests/6.2.14 |
41921 ns/iter (± 509) |
44763 ns/iter (± 39) |
0.94 |
csaf_2_0_tests/6.2.15 |
32173 ns/iter (± 230) |
36283 ns/iter (± 53) |
0.89 |
csaf_2_0_tests/6.2.16 |
38158 ns/iter (± 336) |
45202 ns/iter (± 1534) |
0.84 |
csaf_2_0_tests/6.2.17 |
14234 ns/iter (± 103) |
17634 ns/iter (± 97) |
0.81 |
csaf_2_0_tests/6.2.18 |
23787 ns/iter (± 169) |
28690 ns/iter (± 38) |
0.83 |
csaf_2_0_tests/6.2.19 |
17440 ns/iter (± 111) |
21106 ns/iter (± 443) |
0.83 |
csaf_2_0_tests/6.2.20 |
1235838 ns/iter (± 4987) |
1665827 ns/iter (± 3472) |
0.74 |
csaf_2_0_tests/6.3.1 |
36306 ns/iter (± 269) |
43753 ns/iter (± 123) |
0.83 |
csaf_2_0_tests/6.3.2 |
23880 ns/iter (± 431) |
27830 ns/iter (± 31) |
0.86 |
csaf_2_0_tests/6.3.3 |
23681 ns/iter (± 203) |
28191 ns/iter (± 48) |
0.84 |
csaf_2_0_tests/6.3.4 |
29279 ns/iter (± 312) |
34753 ns/iter (± 608) |
0.84 |
csaf_2_0_tests/6.3.5 |
37393 ns/iter (± 220) |
44543 ns/iter (± 226) |
0.84 |
csaf_2_0_tests/6.3.6 |
16966 ns/iter (± 127) |
20532 ns/iter (± 51) |
0.83 |
csaf_2_0_tests/6.3.7 |
17158 ns/iter (± 112) |
21066 ns/iter (± 607) |
0.81 |
csaf_2_0_tests/6.3.8 |
17223 ns/iter (± 855) |
20363 ns/iter (± 174) |
0.85 |
csaf_2_0_tests/6.3.9 |
32373 ns/iter (± 186) |
35942 ns/iter (± 732) |
0.90 |
csaf_2_0_tests/6.3.10 |
28511 ns/iter (± 394) |
32491 ns/iter (± 181) |
0.88 |
csaf_2_0_tests/6.3.11 |
29543 ns/iter (± 117) |
34146 ns/iter (± 114) |
0.87 |
csaf_2_1_tests/6.1.1 |
510659 ns/iter (± 2218) |
641521 ns/iter (± 1732) |
0.80 |
csaf_2_1_tests/6.1.2 |
197462 ns/iter (± 1140) |
247420 ns/iter (± 584) |
0.80 |
csaf_2_1_tests/6.1.3 |
57754 ns/iter (± 2232) |
74072 ns/iter (± 102) |
0.78 |
csaf_2_1_tests/6.1.4 |
99425 ns/iter (± 2087) |
132242 ns/iter (± 769) |
0.75 |
csaf_2_1_tests/6.1.5 |
39144 ns/iter (± 176) |
49549 ns/iter (± 223) |
0.79 |
csaf_2_1_tests/6.1.6 |
90913 ns/iter (± 1062) |
122231 ns/iter (± 242) |
0.74 |
csaf_2_1_tests/6.1.7 |
62339 ns/iter (± 789) |
73524 ns/iter (± 326) |
0.85 |
csaf_2_1_tests/6.1.8 |
61775 ns/iter (± 356) |
74915 ns/iter (± 119) |
0.82 |
csaf_2_1_tests/6.1.9 |
414859 ns/iter (± 2465) |
495776 ns/iter (± 1404) |
0.84 |
csaf_2_1_tests/6.1.10 |
558351 ns/iter (± 3049) |
625959 ns/iter (± 18525) |
0.89 |
csaf_2_1_tests/6.1.11 |
67198 ns/iter (± 907) |
81631 ns/iter (± 456) |
0.82 |
csaf_2_1_tests/6.1.12 |
76251 ns/iter (± 1289) |
87097 ns/iter (± 333) |
0.88 |
csaf_2_1_tests/6.1.13 |
163871 ns/iter (± 1033) |
196855 ns/iter (± 1735) |
0.83 |
csaf_2_1_tests/6.1.15 |
35125 ns/iter (± 285) |
44260 ns/iter (± 2366) |
0.79 |
csaf_2_1_tests/6.1.16 |
115249 ns/iter (± 924) |
161164 ns/iter (± 862) |
0.72 |
csaf_2_1_tests/6.1.17 |
39209 ns/iter (± 387) |
49171 ns/iter (± 252) |
0.80 |
csaf_2_1_tests/6.1.18 |
45306 ns/iter (± 423) |
55636 ns/iter (± 470) |
0.81 |
csaf_2_1_tests/6.1.19 |
42923 ns/iter (± 393) |
54165 ns/iter (± 125) |
0.79 |
csaf_2_1_tests/6.1.20 |
38393 ns/iter (± 418) |
48891 ns/iter (± 47) |
0.79 |
csaf_2_1_tests/6.1.21 |
125238 ns/iter (± 1235) |
171285 ns/iter (± 607) |
0.73 |
csaf_2_1_tests/6.1.22 |
142850 ns/iter (± 675) |
200746 ns/iter (± 210) |
0.71 |
csaf_2_1_tests/6.1.23 |
43492 ns/iter (± 438) |
54679 ns/iter (± 63) |
0.80 |
csaf_2_1_tests/6.1.24 |
41858 ns/iter (± 306) |
51609 ns/iter (± 137) |
0.81 |
csaf_2_1_tests/6.1.25 |
145406 ns/iter (± 1552) |
173553 ns/iter (± 258) |
0.84 |
csaf_2_1_tests/6.1.26 |
59152 ns/iter (± 527) |
74841 ns/iter (± 90) |
0.79 |
csaf_2_1_tests/6.1.27.1 |
38917 ns/iter (± 451) |
49747 ns/iter (± 41) |
0.78 |
csaf_2_1_tests/6.1.27.2 |
38674 ns/iter (± 353) |
50022 ns/iter (± 69) |
0.77 |
csaf_2_1_tests/6.1.27.3 |
39663 ns/iter (± 216) |
50579 ns/iter (± 26) |
0.78 |
csaf_2_1_tests/6.1.27.4 |
35661 ns/iter (± 314) |
50657 ns/iter (± 155) |
0.70 |
csaf_2_1_tests/6.1.27.5 |
37153 ns/iter (± 380) |
51637 ns/iter (± 59) |
0.72 |
csaf_2_1_tests/6.1.27.6 |
36170 ns/iter (± 975) |
51391 ns/iter (± 249) |
0.70 |
csaf_2_1_tests/6.1.27.7 |
37293 ns/iter (± 378) |
47579 ns/iter (± 1862) |
0.78 |
csaf_2_1_tests/6.1.27.8 |
37394 ns/iter (± 170) |
46245 ns/iter (± 60) |
0.81 |
csaf_2_1_tests/6.1.27.9 |
55519 ns/iter (± 289) |
68879 ns/iter (± 115) |
0.81 |
csaf_2_1_tests/6.1.27.10 |
37028 ns/iter (± 330) |
47841 ns/iter (± 351) |
0.77 |
csaf_2_1_tests/6.1.27.11 |
39914 ns/iter (± 458) |
49737 ns/iter (± 140) |
0.80 |
csaf_2_1_tests/6.1.27.12 |
38712 ns/iter (± 211) |
49216 ns/iter (± 271) |
0.79 |
csaf_2_1_tests/6.1.27.13 |
59445 ns/iter (± 1154) |
74314 ns/iter (± 81) |
0.80 |
csaf_2_1_tests/6.1.27.14 |
40462 ns/iter (± 480) |
51110 ns/iter (± 108) |
0.79 |
csaf_2_1_tests/6.1.27.15 |
39619 ns/iter (± 416) |
51266 ns/iter (± 38) |
0.77 |
csaf_2_1_tests/6.1.27.16 |
39897 ns/iter (± 242) |
50271 ns/iter (± 105) |
0.79 |
csaf_2_1_tests/6.1.27.17 |
40662 ns/iter (± 413) |
53388 ns/iter (± 554) |
0.76 |
csaf_2_1_tests/6.1.27.18 |
43111 ns/iter (± 393) |
55612 ns/iter (± 117) |
0.78 |
csaf_2_1_tests/6.1.27.19 |
43907 ns/iter (± 279) |
54326 ns/iter (± 68) |
0.81 |
csaf_2_1_tests/6.1.28 |
59699 ns/iter (± 441) |
74153 ns/iter (± 86) |
0.81 |
csaf_2_1_tests/6.1.29 |
38048 ns/iter (± 380) |
47200 ns/iter (± 1696) |
0.81 |
csaf_2_1_tests/6.1.30 |
112024 ns/iter (± 1470) |
151333 ns/iter (± 958) |
0.74 |
csaf_2_1_tests/6.1.31 |
141601 ns/iter (± 1357) |
167406 ns/iter (± 354) |
0.85 |
csaf_2_1_tests/6.1.32 |
38634 ns/iter (± 432) |
47929 ns/iter (± 141) |
0.81 |
csaf_2_1_tests/6.1.33 |
68006 ns/iter (± 277) |
86505 ns/iter (± 92) |
0.79 |
csaf_2_1_tests/6.1.34 |
46264 ns/iter (± 470) |
57922 ns/iter (± 134) |
0.80 |
csaf_2_1_tests/6.1.35 |
63265 ns/iter (± 531) |
84881 ns/iter (± 529) |
0.75 |
csaf_2_1_tests/6.1.36 |
68658 ns/iter (± 412) |
87421 ns/iter (± 122) |
0.79 |
csaf_2_1_tests/6.1.37 |
68759 ns/iter (± 379) |
87775 ns/iter (± 457) |
0.78 |
csaf_2_1_tests/6.1.38 |
36767 ns/iter (± 267) |
48298 ns/iter (± 339) |
0.76 |
csaf_2_1_tests/6.1.39 |
36951 ns/iter (± 562) |
48863 ns/iter (± 219) |
0.76 |
csaf_2_1_tests/6.1.40 |
37390 ns/iter (± 479) |
48515 ns/iter (± 145) |
0.77 |
csaf_2_1_tests/6.1.41 |
36808 ns/iter (± 370) |
48995 ns/iter (± 417) |
0.75 |
csaf_2_1_tests/6.1.42 |
174944 ns/iter (± 1645) |
206448 ns/iter (± 7076) |
0.85 |
csaf_2_1_tests/6.1.43 |
140604 ns/iter (± 1821) |
169685 ns/iter (± 1144) |
0.83 |
csaf_2_1_tests/6.1.44 |
144685 ns/iter (± 723) |
170364 ns/iter (± 1630) |
0.85 |
csaf_2_1_tests/6.1.45 |
115888 ns/iter (± 1946) |
172191 ns/iter (± 315) |
0.67 |
csaf_2_1_tests/6.1.46 |
219747 ns/iter (± 4402) |
278984 ns/iter (± 473) |
0.79 |
csaf_2_1_tests/6.1.47 |
336466 ns/iter (± 2762) |
424974 ns/iter (± 685) |
0.79 |
csaf_2_1_tests/6.1.48 |
74262 ns/iter (± 1481) |
91459 ns/iter (± 150) |
0.81 |
csaf_2_1_tests/6.1.49 |
74483 ns/iter (± 681) |
91763 ns/iter (± 3892) |
0.81 |
csaf_2_1_tests/6.1.50 |
74129 ns/iter (± 792) |
92483 ns/iter (± 349) |
0.80 |
csaf_2_1_tests/6.1.51 |
120614 ns/iter (± 8463) |
178412 ns/iter (± 674) |
0.68 |
csaf_2_1_tests/6.1.52 |
125812 ns/iter (± 2071) |
183300 ns/iter (± 1261) |
0.69 |
csaf_2_1_tests/6.1.53 |
45482 ns/iter (± 424) |
57627 ns/iter (± 169) |
0.79 |
csaf_2_1_tests/6.1.54 |
54582 ns/iter (± 471) |
66445 ns/iter (± 215) |
0.82 |
csaf_2_1_tests/6.1.55 |
53349 ns/iter (± 746) |
68409 ns/iter (± 1642) |
0.78 |
csaf_2_1_tests/6.1.56 |
75433 ns/iter (± 768) |
102301 ns/iter (± 613) |
0.74 |
csaf_2_1_tests/6.1.57 |
108720 ns/iter (± 3875) |
143123 ns/iter (± 341) |
0.76 |
csaf_2_1_tests/6.1.58 |
76561 ns/iter (± 1551) |
90117 ns/iter (± 153) |
0.85 |
csaf_2_1_tests/6.1.59 |
77266 ns/iter (± 827) |
95196 ns/iter (± 133) |
0.81 |
csaf_2_1_tests/6.1.60.1 |
60348 ns/iter (± 619) |
73018 ns/iter (± 45) |
0.83 |
csaf_2_1_tests/6.1.60.2 |
60587 ns/iter (± 507) |
72855 ns/iter (± 188) |
0.83 |
csaf_2_1_tests/6.1.60.3 |
60610 ns/iter (± 433) |
72716 ns/iter (± 60) |
0.83 |
csaf_2_1_tests/6.1.61 |
143561 ns/iter (± 2335) |
176910 ns/iter (± 604) |
0.81 |
csaf_2_1_tests/6.2.1 |
589025 ns/iter (± 4927) |
724381 ns/iter (± 2171) |
0.81 |
csaf_2_1_tests/6.2.2 |
66919 ns/iter (± 521) |
79479 ns/iter (± 153) |
0.84 |
csaf_2_1_tests/6.2.3 |
63855 ns/iter (± 1041) |
76974 ns/iter (± 297) |
0.83 |
csaf_2_1_tests/6.2.4 |
57365 ns/iter (± 322) |
69793 ns/iter (± 110) |
0.82 |
csaf_2_1_tests/6.2.5 |
150176 ns/iter (± 1424) |
205496 ns/iter (± 473) |
0.73 |
csaf_2_1_tests/6.2.6 |
149033 ns/iter (± 1540) |
206454 ns/iter (± 1380) |
0.72 |
csaf_2_1_tests/6.2.7 |
53634 ns/iter (± 1052) |
62332 ns/iter (± 495) |
0.86 |
csaf_2_1_tests/6.2.8 |
153122 ns/iter (± 1508) |
183043 ns/iter (± 18824) |
0.84 |
csaf_2_1_tests/6.2.9 |
154810 ns/iter (± 2488) |
184463 ns/iter (± 1445) |
0.84 |
csaf_2_1_tests/6.2.11 |
391781 ns/iter (± 3160) |
592249 ns/iter (± 856) |
0.66 |
csaf_2_1_tests/6.2.12 |
108003 ns/iter (± 1191) |
127391 ns/iter (± 5429) |
0.85 |
csaf_2_1_tests/6.2.13 |
3299084 ns/iter (± 27293) |
3820553 ns/iter (± 37973) |
0.86 |
csaf_2_1_tests/6.2.14 |
116535 ns/iter (± 720) |
131791 ns/iter (± 199) |
0.88 |
csaf_2_1_tests/6.2.15 |
98681 ns/iter (± 3567) |
113292 ns/iter (± 96) |
0.87 |
csaf_2_1_tests/6.2.16 |
188527 ns/iter (± 1341) |
225715 ns/iter (± 447) |
0.84 |
csaf_2_1_tests/6.2.17 |
58418 ns/iter (± 2196) |
72572 ns/iter (± 104) |
0.80 |
csaf_2_1_tests/6.2.18 |
126509 ns/iter (± 1011) |
154059 ns/iter (± 256) |
0.82 |
csaf_2_1_tests/6.2.19 |
68030 ns/iter (± 545) |
85358 ns/iter (± 100) |
0.80 |
csaf_2_1_tests/6.2.20 |
6860723 ns/iter (± 112994) |
10401937 ns/iter (± 88926) |
0.66 |
csaf_2_1_tests/6.2.21 |
274906 ns/iter (± 3617) |
372276 ns/iter (± 968) |
0.74 |
csaf_2_1_tests/6.2.22 |
132520 ns/iter (± 6867) |
170209 ns/iter (± 218) |
0.78 |
csaf_2_1_tests/6.2.23 |
71965 ns/iter (± 1641) |
87087 ns/iter (± 75) |
0.83 |
csaf_2_1_tests/6.2.24 |
191962 ns/iter (± 3351) |
256864 ns/iter (± 226) |
0.75 |
csaf_2_1_tests/6.2.25 |
70816 ns/iter (± 853) |
88449 ns/iter (± 94) |
0.80 |
csaf_2_1_tests/6.2.26 |
71175 ns/iter (± 782) |
89637 ns/iter (± 8356) |
0.79 |
csaf_2_1_tests/6.2.27 |
69089 ns/iter (± 774) |
87565 ns/iter (± 783) |
0.79 |
csaf_2_1_tests/6.2.28 |
57393 ns/iter (± 224) |
74128 ns/iter (± 105) |
0.77 |
csaf_2_1_tests/6.2.29 |
57525 ns/iter (± 600) |
74030 ns/iter (± 150) |
0.78 |
csaf_2_1_tests/6.2.30 |
58547 ns/iter (± 498) |
74923 ns/iter (± 97) |
0.78 |
csaf_2_1_tests/6.2.31 |
178435 ns/iter (± 1267) |
217372 ns/iter (± 348) |
0.82 |
csaf_2_1_tests/6.2.32 |
271432 ns/iter (± 2525) |
325563 ns/iter (± 378) |
0.83 |
csaf_2_1_tests/6.2.33 |
182454 ns/iter (± 1331) |
238916 ns/iter (± 433) |
0.76 |
csaf_2_1_tests/6.2.34 |
70707 ns/iter (± 681) |
89816 ns/iter (± 787) |
0.79 |
csaf_2_1_tests/6.2.35 |
72567 ns/iter (± 568) |
89913 ns/iter (± 428) |
0.81 |
csaf_2_1_tests/6.2.36 |
72082 ns/iter (± 936) |
90316 ns/iter (± 112) |
0.80 |
csaf_2_1_tests/6.2.37 |
72218 ns/iter (± 420) |
90624 ns/iter (± 324) |
0.80 |
csaf_2_1_tests/6.2.38 |
80201 ns/iter (± 1010) |
103671 ns/iter (± 545) |
0.77 |
csaf_2_1_tests/6.2.39.1 |
59964 ns/iter (± 491) |
74013 ns/iter (± 123) |
0.81 |
csaf_2_1_tests/6.2.39.2 |
60152 ns/iter (± 226) |
74050 ns/iter (± 269) |
0.81 |
csaf_2_1_tests/6.2.39.3 |
60800 ns/iter (± 355) |
74305 ns/iter (± 325) |
0.82 |
csaf_2_1_tests/6.2.39.4 |
60393 ns/iter (± 505) |
74622 ns/iter (± 110) |
0.81 |
csaf_2_1_tests/6.2.39.5 |
60147 ns/iter (± 668) |
73006 ns/iter (± 34) |
0.82 |
csaf_2_1_tests/6.2.40 |
74789 ns/iter (± 1059) |
91387 ns/iter (± 105) |
0.82 |
csaf_2_1_tests/6.2.41 |
142456 ns/iter (± 1655) |
203760 ns/iter (± 185) |
0.70 |
csaf_2_1_tests/6.2.42 |
74729 ns/iter (± 973) |
91989 ns/iter (± 122) |
0.81 |
csaf_2_1_tests/6.2.43 |
75103 ns/iter (± 4040) |
92283 ns/iter (± 273) |
0.81 |
csaf_2_1_tests/6.2.44 |
75412 ns/iter (± 2029) |
92610 ns/iter (± 110) |
0.81 |
csaf_2_1_tests/6.2.45 |
75882 ns/iter (± 1074) |
93237 ns/iter (± 566) |
0.81 |
csaf_2_1_tests/6.2.46 |
76768 ns/iter (± 1218) |
93656 ns/iter (± 210) |
0.82 |
csaf_2_1_tests/6.2.47 |
221033 ns/iter (± 3070) |
322366 ns/iter (± 419) |
0.69 |
csaf_2_1_tests/6.2.48 |
143855 ns/iter (± 1408) |
171174 ns/iter (± 249) |
0.84 |
csaf_2_1_tests/6.2.49 |
78092 ns/iter (± 609) |
94618 ns/iter (± 141) |
0.83 |
csaf_2_1_tests/6.2.50.1 |
60981 ns/iter (± 911) |
72771 ns/iter (± 655) |
0.84 |
csaf_2_1_tests/6.2.50.2 |
62465 ns/iter (± 706) |
74675 ns/iter (± 1882) |
0.84 |
csaf_2_1_tests/6.2.50.3 |
61493 ns/iter (± 1316) |
74033 ns/iter (± 74) |
0.83 |
csaf_2_1_tests/6.2.51 |
80254 ns/iter (± 2370) |
94926 ns/iter (± 257) |
0.85 |
csaf_2_1_tests/6.2.52 |
168689 ns/iter (± 2514) |
203817 ns/iter (± 468) |
0.83 |
csaf_2_1_tests/6.2.53 |
69809 ns/iter (± 669) |
85391 ns/iter (± 8288) |
0.82 |
csaf_2_1_tests/6.2.54.1 |
62211 ns/iter (± 590) |
72468 ns/iter (± 79) |
0.86 |
csaf_2_1_tests/6.2.54.2 |
59778 ns/iter (± 428) |
73144 ns/iter (± 122) |
0.82 |
csaf_2_1_tests/6.2.54.3 |
60633 ns/iter (± 737) |
74002 ns/iter (± 147) |
0.82 |
csaf_2_1_tests/6.2.54.4 |
60966 ns/iter (± 741) |
72763 ns/iter (± 94) |
0.84 |
csaf_2_1_tests/6.3.1 |
62266 ns/iter (± 1852) |
74593 ns/iter (± 127) |
0.83 |
csaf_2_1_tests/6.3.2 |
84645 ns/iter (± 1737) |
97625 ns/iter (± 228) |
0.87 |
csaf_2_1_tests/6.3.3 |
63251 ns/iter (± 999) |
74067 ns/iter (± 395) |
0.85 |
csaf_2_1_tests/6.3.4 |
62539 ns/iter (± 734) |
74881 ns/iter (± 125) |
0.84 |
csaf_2_1_tests/6.3.5 |
62778 ns/iter (± 3107) |
73677 ns/iter (± 84) |
0.85 |
csaf_2_1_tests/6.3.6 |
63598 ns/iter (± 1375) |
74623 ns/iter (± 513) |
0.85 |
csaf_2_1_tests/6.3.7 |
62761 ns/iter (± 905) |
76405 ns/iter (± 29) |
0.82 |
csaf_2_1_tests/6.3.8 |
62247 ns/iter (± 2150) |
75541 ns/iter (± 83) |
0.82 |
csaf_2_1_tests/6.3.9 |
166594 ns/iter (± 2145) |
190604 ns/iter (± 314) |
0.87 |
csaf_2_1_tests/6.3.10 |
75784 ns/iter (± 496) |
93050 ns/iter (± 139) |
0.81 |
csaf_2_1_tests/6.3.11 |
76548 ns/iter (± 802) |
93344 ns/iter (± 130) |
0.82 |
csaf_2_1_tests/6.3.12 |
197149 ns/iter (± 2906) |
244718 ns/iter (± 950) |
0.81 |
csaf_2_1_tests/6.3.13 |
76632 ns/iter (± 639) |
93773 ns/iter (± 155) |
0.82 |
csaf_2_1_tests/6.3.14 |
76136 ns/iter (± 358) |
94295 ns/iter (± 437) |
0.81 |
csaf_2_1_tests/6.3.15 |
76950 ns/iter (± 2333) |
94490 ns/iter (± 252) |
0.81 |
csaf_2_1_tests/6.3.16 |
77068 ns/iter (± 1292) |
94645 ns/iter (± 762) |
0.81 |
csaf_2_1_tests/6.3.17 |
89394 ns/iter (± 935) |
94959 ns/iter (± 177) |
0.94 |
csaf_2_1_tests/6.3.18 |
87183 ns/iter (± 770) |
104716 ns/iter (± 278) |
0.83 |
csaf_2_1_tests/6.3.19.1 |
60731 ns/iter (± 1246) |
74289 ns/iter (± 2728) |
0.82 |
csaf_2_1_tests/6.3.19.2 |
60420 ns/iter (± 642) |
73097 ns/iter (± 577) |
0.83 |
csaf_2_1_tests/6.3.19.3 |
60379 ns/iter (± 767) |
73045 ns/iter (± 70) |
0.83 |
csaf_2_1_tests/6.3.19.4 |
61664 ns/iter (± 1430) |
72737 ns/iter (± 95) |
0.85 |
csaf_2_1_tests/6.3.19.5 |
61000 ns/iter (± 1678) |
73065 ns/iter (± 48) |
0.83 |
csaf_2_1_tests/6.3.20 |
87271 ns/iter (± 1365) |
106131 ns/iter (± 513) |
0.82 |
csaf_2_1_tests/6.3.21.1 |
60969 ns/iter (± 701) |
72733 ns/iter (± 65) |
0.84 |
csaf_2_1_tests/6.3.21.2 |
61018 ns/iter (± 691) |
72795 ns/iter (± 379) |
0.84 |
csaf_2_1_tests/6.3.21.3 |
61158 ns/iter (± 722) |
73070 ns/iter (± 198) |
0.84 |
csaf_2_1_tests/6.3.21.4 |
60146 ns/iter (± 475) |
72756 ns/iter (± 97) |
0.83 |
csaf_2_1_tests/6.3.21.5 |
59787 ns/iter (± 408) |
75815 ns/iter (± 294) |
0.79 |
csaf_2_1_tests/6.3.21.6 |
60461 ns/iter (± 588) |
72746 ns/iter (± 297) |
0.83 |
csaf_2_1_tests/6.3.21.7 |
61528 ns/iter (± 1087) |
73359 ns/iter (± 64) |
0.84 |
csaf_2_1_tests/6.3.21.8 |
60791 ns/iter (± 732) |
73039 ns/iter (± 83) |
0.83 |
csaf_2_1_tests/6.3.21.9 |
60849 ns/iter (± 725) |
73852 ns/iter (± 5943) |
0.82 |
csaf_2_1_tests/6.3.22 |
77616 ns/iter (± 909) |
110636 ns/iter (± 436) |
0.70 |
full_validation/csaf_2_0_full_preset |
6413619 ns/iter (± 115633) |
7287407 ns/iter (± 33947) |
0.88 |
full_validation/csaf_2_1_full_preset |
46349858 ns/iter (± 544046) |
52705951 ns/iter (± 194488) |
0.88 |
parse_only/csaf_2_0 |
1006858 ns/iter (± 15851) |
1190544 ns/iter (± 12834) |
0.85 |
parse_only/csaf_2_1 |
5079093 ns/iter (± 106577) |
5938640 ns/iter (± 18818) |
0.86 |
typed_parse/csaf_2_0 |
1772866 ns/iter (± 18136) |
2029309 ns/iter (± 6395) |
0.87 |
typed_parse/csaf_2_1 |
8459533 ns/iter (± 64701) |
9604711 ns/iter (± 9197) |
0.88 |
This comment was automatically generated by workflow using github-action-benchmark.
# Conflicts: # csaf-rs/src/csaf/traits/product_tree_trait.rs # csaf-rs/src/csaf/traits/shared/note_trait.rs # csaf-rs/src/csaf/traits/vulnerabilities/remediation_trait.rs
|
We will also partly need this for 6.3.6 after 6.3.7 (#789) is done. Some of the traits added here contain urls that need to be added and validated there. |
# Conflicts: # csaf-rs/src/csaf/traits/document/mod.rs # csaf-rs/src/csaf/traits/document_trait.rs # csaf-rs/src/csaf/traits/shared/references_trait.rs # csaf-rs/src/csaf/traits/vulnerabilities/remediation_trait.rs # csaf-rs/src/csaf/traits/vulnerabilities_trait.rs # csaf-rs/src/csaf_traits.rs # csaf-rs/src/validations/test_6_2_11.rs
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 18 out of 18 changed files in this pull request and generated no new comments.
Suppressed comments (1)
csaf-rs/src/csaf/traits/document/generator_trait.rs:17
GeneratorTraitis publicly re-exported (viacsaf_traits.rs), so adding an associated type and a required method is a semver-breaking change for any downstream crates that implement this trait (and it also makes the trait non-object-safe). If this is intentional, please ensure the next release bumps the appropriate version and/or documents the breaking change; if it’s not intentional, consider introducing a new extension trait (e.g.,GeneratorEngineTrait) instead of changing the existing public trait.
pub trait GeneratorTrait: WithOptionalDate {
/// Type representing the generation engine
type EngineType: EngineTrait;
/// Returns the engine that generated this document
fn get_engine(&self) -> &Self::EngineType;
}
|
@tziemek @aschierl-xitaso pinging for review |
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 18 out of 18 changed files in this pull request and generated no new comments.
Suppressed comments (3)
csaf-rs/src/csaf/traits/document/aggregate_severity_trait.rs:1
impl_optional_str_field_getter/impl_str_field_getterare re-exported fromcrate::csaf::traits::util, and that is the import style used by most other trait modules. Importing them viautil::impl_macrosis inconsistent and couples this file to an internal module.
use crate::csaf::traits::util::impl_macros::{impl_optional_str_field_getter, impl_str_field_getter};
csaf-rs/src/csaf/traits/document/tracking_trait.rs:106
TrackingTrait::get_aliasesadds new behavior (mapping optional alias strings into&strs), but this file’s test module only coverscanonical_filename_from_id. Adding a small unit test forget_aliases(bothNoneandSomecases, for CSAF 2.0 and 2.1) would help prevent regressions as the schema types evolve.
fn get_version(&self) -> CsafVersionNumber;
fn get_aliases(&self) -> Option<Vec<&str>>;
}
csaf-rs/src/csaf/traits/document/distribution_trait.rs:1
- This file imports
impl_optional_str_field_getterfromtraits::util::impl_macros, but the util module already re-exports this macro and other trait files import it directly fromtraits::util. Importing from the re-export keeps the pattern consistent and avoids reaching into the internalimpl_macrosmodule.
use crate::csaf::traits::util::impl_macros::impl_optional_str_field_getter;
Relates to #144 #276
Adds the fields required to be evaluated during spell checking to the trait.