Commit 89e4193
authored
add missing
# Objective
- Fixes `ExactSizeIterator::len` panic in a few of these iterators.
Note: the std default impl of `ExactSizeIterator::len` has
`assert_eq!(Some(lower), upper);`. I am facing this issue myself with
`<index_set::Iter as ExactSizeIterator>::len`.
- Should slightly improve performance in some cases, where the more
precise `size_hint` causes less allocations (for example when collecting
into a `Vec`)
## Solution
- Add `size_hint` overrides that forward to inner iterators or an
`ExactSizeIterator::len` override in one specific case.
## Testing
- Since the overrides are pretty simple, I mostly didn't add any tests.
- I didn't feel 100% confident in the `WriteBatchIds::size_hint`
implementation, so I added a test there.Iterator::size_hint overrides, most of which cause ExactSizeIterator::len to panic (#22035)1 parent 25d4ced commit 89e4193
File tree
6 files changed
+89
-0
lines changed- crates
- bevy_ecs/src
- entity
- message
- bevy_mesh/src
6 files changed
+89
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
176 | 176 | | |
177 | 177 | | |
178 | 178 | | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
179 | 183 | | |
180 | 184 | | |
181 | 185 | | |
| |||
234 | 238 | | |
235 | 239 | | |
236 | 240 | | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
237 | 245 | | |
238 | 246 | | |
239 | 247 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
238 | 238 | | |
239 | 239 | | |
240 | 240 | | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
241 | 245 | | |
242 | 246 | | |
243 | 247 | | |
| |||
293 | 297 | | |
294 | 298 | | |
295 | 299 | | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
296 | 304 | | |
297 | 305 | | |
298 | 306 | | |
| |||
345 | 353 | | |
346 | 354 | | |
347 | 355 | | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
348 | 360 | | |
349 | 361 | | |
350 | 362 | | |
| |||
394 | 406 | | |
395 | 407 | | |
396 | 408 | | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
397 | 413 | | |
398 | 414 | | |
399 | 415 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
861 | 861 | | |
862 | 862 | | |
863 | 863 | | |
| 864 | + | |
| 865 | + | |
| 866 | + | |
| 867 | + | |
864 | 868 | | |
865 | 869 | | |
866 | 870 | | |
| |||
934 | 938 | | |
935 | 939 | | |
936 | 940 | | |
| 941 | + | |
| 942 | + | |
| 943 | + | |
| 944 | + | |
937 | 945 | | |
938 | 946 | | |
939 | 947 | | |
| |||
1004 | 1012 | | |
1005 | 1013 | | |
1006 | 1014 | | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
1007 | 1019 | | |
1008 | 1020 | | |
1009 | 1021 | | |
| |||
1072 | 1084 | | |
1073 | 1085 | | |
1074 | 1086 | | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 1090 | + | |
1075 | 1091 | | |
1076 | 1092 | | |
1077 | 1093 | | |
| |||
1120 | 1136 | | |
1121 | 1137 | | |
1122 | 1138 | | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
1123 | 1143 | | |
1124 | 1144 | | |
1125 | 1145 | | |
| |||
1188 | 1208 | | |
1189 | 1209 | | |
1190 | 1210 | | |
| 1211 | + | |
| 1212 | + | |
| 1213 | + | |
| 1214 | + | |
1191 | 1215 | | |
1192 | 1216 | | |
1193 | 1217 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
582 | 582 | | |
583 | 583 | | |
584 | 584 | | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
585 | 589 | | |
586 | 590 | | |
587 | 591 | | |
| |||
651 | 655 | | |
652 | 656 | | |
653 | 657 | | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
654 | 662 | | |
655 | 663 | | |
656 | 664 | | |
| |||
723 | 731 | | |
724 | 732 | | |
725 | 733 | | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
726 | 738 | | |
727 | 739 | | |
728 | 740 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
382 | 382 | | |
383 | 383 | | |
384 | 384 | | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
385 | 390 | | |
386 | 391 | | |
387 | 392 | | |
| |||
425 | 430 | | |
426 | 431 | | |
427 | 432 | | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
428 | 448 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
36 | 45 | | |
37 | 46 | | |
38 | 47 | | |
| |||
0 commit comments