Commit 9ee373f
authored
Rollup merge of rust-lang#69784 - benesch:fast-strip-prefix-suffix, r=kennytm
Optimize strip_prefix and strip_suffix with str patterns
As mentioned in rust-lang#67302 (comment).
I'm not sure whether adding these methods to `Pattern` is desirable—but they have default implementations so the change is backwards compatible. Plus it seems like they're slated for wholesale replacement soon anyway? rust-lang#56345
----
Constructing a Searcher in strip_prefix and strip_suffix is
unnecessarily slow when the pattern is a fixed-length string. Add
strip_prefix and strip_suffix methods to the Pattern trait, and add
optimized implementations of these methods in the str implementation.
The old implementation is retained as the default for these methods.3 files changed
Lines changed: 107 additions & 30 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1849 | 1849 | | |
1850 | 1850 | | |
1851 | 1851 | | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
| 1855 | + | |
| 1856 | + | |
| 1857 | + | |
| 1858 | + | |
| 1859 | + | |
| 1860 | + | |
| 1861 | + | |
| 1862 | + | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
1852 | 1867 | | |
1853 | 1868 | | |
1854 | 1869 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
| |||
3986 | 3986 | | |
3987 | 3987 | | |
3988 | 3988 | | |
3989 | | - | |
3990 | | - | |
| 3989 | + | |
| 3990 | + | |
3991 | 3991 | | |
3992 | 3992 | | |
3993 | 3993 | | |
3994 | 3994 | | |
3995 | 3995 | | |
3996 | 3996 | | |
3997 | | - | |
3998 | | - | |
3999 | | - | |
4000 | | - | |
4001 | | - | |
4002 | | - | |
4003 | | - | |
4004 | | - | |
4005 | | - | |
4006 | | - | |
4007 | | - | |
4008 | | - | |
| 3997 | + | |
4009 | 3998 | | |
4010 | 3999 | | |
4011 | 4000 | | |
| |||
4020 | 4009 | | |
4021 | 4010 | | |
4022 | 4011 | | |
4023 | | - | |
4024 | | - | |
| 4012 | + | |
| 4013 | + | |
4025 | 4014 | | |
4026 | 4015 | | |
4027 | 4016 | | |
| |||
4032 | 4021 | | |
4033 | 4022 | | |
4034 | 4023 | | |
4035 | | - | |
4036 | | - | |
4037 | | - | |
4038 | | - | |
4039 | | - | |
4040 | | - | |
4041 | | - | |
4042 | | - | |
4043 | | - | |
4044 | | - | |
4045 | | - | |
4046 | | - | |
4047 | | - | |
| 4024 | + | |
4048 | 4025 | | |
4049 | 4026 | | |
4050 | 4027 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
50 | 66 | | |
51 | 67 | | |
52 | 68 | | |
| |||
55 | 71 | | |
56 | 72 | | |
57 | 73 | | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
58 | 94 | | |
59 | 95 | | |
60 | 96 | | |
| |||
448 | 484 | | |
449 | 485 | | |
450 | 486 | | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
451 | 492 | | |
452 | 493 | | |
453 | 494 | | |
454 | 495 | | |
455 | 496 | | |
456 | 497 | | |
457 | 498 | | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
458 | 507 | | |
459 | 508 | | |
460 | 509 | | |
| |||
569 | 618 | | |
570 | 619 | | |
571 | 620 | | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
572 | 626 | | |
573 | 627 | | |
574 | 628 | | |
575 | 629 | | |
576 | 630 | | |
577 | 631 | | |
578 | 632 | | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
579 | 641 | | |
580 | 642 | | |
581 | 643 | | |
| |||
715 | 777 | | |
716 | 778 | | |
717 | 779 | | |
| 780 | + | |
| 781 | + | |
| 782 | + | |
| 783 | + | |
| 784 | + | |
| 785 | + | |
| 786 | + | |
| 787 | + | |
| 788 | + | |
| 789 | + | |
| 790 | + | |
718 | 791 | | |
719 | 792 | | |
720 | 793 | | |
721 | 794 | | |
722 | 795 | | |
| 796 | + | |
| 797 | + | |
| 798 | + | |
| 799 | + | |
| 800 | + | |
| 801 | + | |
| 802 | + | |
| 803 | + | |
| 804 | + | |
| 805 | + | |
| 806 | + | |
| 807 | + | |
723 | 808 | | |
724 | 809 | | |
725 | 810 | | |
| |||
0 commit comments