File tree 3 files changed +16
-0
lines changed
3 files changed +16
-0
lines changed Original file line number Diff line number Diff line change 93
93
// tidy-alphabetical-start
94
94
#![ cfg_attr( not( no_global_oom_handling) , feature( const_alloc_error) ) ]
95
95
#![ cfg_attr( not( no_global_oom_handling) , feature( const_btree_len) ) ]
96
+ #![ cfg_attr( test, feature( str_as_str) ) ]
96
97
#![ feature( alloc_layout_extra) ]
97
98
#![ feature( allocator_api) ]
98
99
#![ feature( array_chunks) ]
Original file line number Diff line number Diff line change @@ -448,7 +448,11 @@ fn test_from_box_str() {
448
448
use std:: string:: String ;
449
449
450
450
let s = String :: from ( "foo" ) . into_boxed_str ( ) ;
451
+ assert_eq ! ( ( &&& s) . as_str( ) , "foo" ) ;
452
+
451
453
let r: Rc < str > = Rc :: from ( s) ;
454
+ assert_eq ! ( ( & r) . as_str( ) , "foo" ) ;
455
+ assert_eq ! ( r. as_str( ) , "foo" ) ;
452
456
453
457
assert_eq ! ( & r[ ..] , "foo" ) ;
454
458
}
Original file line number Diff line number Diff line change @@ -2737,6 +2737,17 @@ impl str {
2737
2737
pub fn substr_range ( & self , substr : & str ) -> Option < Range < usize > > {
2738
2738
self . as_bytes ( ) . subslice_range ( substr. as_bytes ( ) )
2739
2739
}
2740
+
2741
+ /// Returns the same string as a string slice `&str`.
2742
+ ///
2743
+ /// This method is redundant when used directly on `&str`, but
2744
+ /// it helps dereferencing other string-like types to string slices,
2745
+ /// for example references to `Box<str>` or `Arc<str>`.
2746
+ #[ inline]
2747
+ #[ unstable( feature = "str_as_str" , issue = "130366" ) ]
2748
+ pub fn as_str ( & self ) -> & str {
2749
+ self
2750
+ }
2740
2751
}
2741
2752
2742
2753
#[ stable( feature = "rust1" , since = "1.0.0" ) ]
You can’t perform that action at this time.
0 commit comments