@@ -3604,24 +3604,20 @@ impl str {
36043604 /// Basic usage:
36053605 ///
36063606 /// ```
3607- /// #![feature(trim_direction)]
3608- ///
36093607 /// let s = " Hello\tworld\t";
36103608 /// assert_eq!("Hello\tworld\t", s.trim_start());
36113609 /// ```
36123610 ///
36133611 /// Directionality:
36143612 ///
36153613 /// ```
3616- /// #![feature(trim_direction)]
3617- ///
3618- /// let s = " English";
3614+ /// let s = " English ";
36193615 /// assert!(Some('E') == s.trim_start().chars().next());
36203616 ///
3621- /// let s = " עברית";
3617+ /// let s = " עברית ";
36223618 /// assert!(Some('ע') == s.trim_start().chars().next());
36233619 /// ```
3624- #[ unstable ( feature = "trim_direction" , issue = "30459 " ) ]
3620+ #[ stable ( feature = "trim_direction" , since = "1.30.0 " ) ]
36253621 pub fn trim_start ( & self ) -> & str {
36263622 self . trim_start_matches ( |c : char | c. is_whitespace ( ) )
36273623 }
@@ -3643,24 +3639,20 @@ impl str {
36433639 /// Basic usage:
36443640 ///
36453641 /// ```
3646- /// #![feature(trim_direction)]
3647- ///
36483642 /// let s = " Hello\tworld\t";
36493643 /// assert_eq!(" Hello\tworld", s.trim_end());
36503644 /// ```
36513645 ///
36523646 /// Directionality:
36533647 ///
36543648 /// ```
3655- /// #![feature(trim_direction)]
3656- ///
3657- /// let s = "English ";
3649+ /// let s = " English ";
36583650 /// assert!(Some('h') == s.trim_end().chars().rev().next());
36593651 ///
3660- /// let s = "עברית ";
3652+ /// let s = " עברית ";
36613653 /// assert!(Some('ת') == s.trim_end().chars().rev().next());
36623654 /// ```
3663- #[ unstable ( feature = "trim_direction" , issue = "30459 " ) ]
3655+ #[ stable ( feature = "trim_direction" , since = "1.30.0 " ) ]
36643656 pub fn trim_end ( & self ) -> & str {
36653657 self . trim_end_matches ( |c : char | c. is_whitespace ( ) )
36663658 }
@@ -3805,15 +3797,13 @@ impl str {
38053797 /// Basic usage:
38063798 ///
38073799 /// ```
3808- /// #![feature(trim_direction)]
3809- ///
38103800 /// assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
38113801 /// assert_eq!("123foo1bar123".trim_start_matches(char::is_numeric), "foo1bar123");
38123802 ///
38133803 /// let x: &[_] = &['1', '2'];
38143804 /// assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
38153805 /// ```
3816- #[ unstable ( feature = "trim_direction" , issue = "30459 " ) ]
3806+ #[ stable ( feature = "trim_direction" , since = "1.30.0 " ) ]
38173807 pub fn trim_start_matches < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> & ' a str {
38183808 let mut i = self . len ( ) ;
38193809 let mut matcher = pat. into_searcher ( self ) ;
@@ -3846,8 +3836,6 @@ impl str {
38463836 /// Simple patterns:
38473837 ///
38483838 /// ```
3849- /// #![feature(trim_direction)]
3850- ///
38513839 /// assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
38523840 /// assert_eq!("123foo1bar123".trim_end_matches(char::is_numeric), "123foo1bar");
38533841 ///
@@ -3858,11 +3846,9 @@ impl str {
38583846 /// A more complex pattern, using a closure:
38593847 ///
38603848 /// ```
3861- /// #![feature(trim_direction)]
3862- ///
38633849 /// assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
38643850 /// ```
3865- #[ unstable ( feature = "trim_direction" , issue = "30459 " ) ]
3851+ #[ stable ( feature = "trim_direction" , since = "1.30.0 " ) ]
38663852 pub fn trim_end_matches < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> & ' a str
38673853 where P :: Searcher : ReverseSearcher < ' a >
38683854 {
0 commit comments