Commit ac478f2
committed
Optimize strip_prefix and strip_suffix with str patterns
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.1 parent e768d6f commit ac478f2
3 files changed
+107
-30
lines changed| 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