File tree Expand file tree Collapse file tree 3 files changed +64
-0
lines changed Expand file tree Collapse file tree 3 files changed +64
-0
lines changed Original file line number Diff line number Diff line change @@ -910,6 +910,28 @@ impl From<&CStr> for Rc<CStr> {
910910 }
911911}
912912
913+ #[ cfg( not( no_global_oom_handling) ) ]
914+ #[ stable( feature = "more_rc_default_impls" , since = "CURRENT_RUSTC_VERSION" ) ]
915+ impl Default for Arc < CStr > {
916+ /// Creates an empty CStr inside an Arc
917+ #[ inline]
918+ fn default ( ) -> Self {
919+ let c_str: & CStr = Default :: default ( ) ;
920+ Arc :: from ( c_str)
921+ }
922+ }
923+
924+ #[ cfg( not( no_global_oom_handling) ) ]
925+ #[ stable( feature = "more_rc_default_impls" , since = "CURRENT_RUSTC_VERSION" ) ]
926+ impl Default for Rc < CStr > {
927+ /// Creates an empty CStr inside an Rc
928+ #[ inline]
929+ fn default ( ) -> Self {
930+ let c_str: & CStr = Default :: default ( ) ;
931+ Rc :: from ( c_str)
932+ }
933+ }
934+
913935#[ cfg( not( test) ) ]
914936#[ stable( feature = "default_box_extra" , since = "1.17.0" ) ]
915937impl Default for Box < CStr > {
Original file line number Diff line number Diff line change @@ -2224,6 +2224,27 @@ impl<T: Default> Default for Rc<T> {
22242224 }
22252225}
22262226
2227+ #[ cfg( not( no_global_oom_handling) ) ]
2228+ #[ stable( feature = "more_rc_default_impls" , since = "CURRENT_RUSTC_VERSION" ) ]
2229+ impl Default for Rc < str > {
2230+ /// Creates an empty str inside an Rc
2231+ #[ inline]
2232+ fn default ( ) -> Self {
2233+ Rc :: from ( "" )
2234+ }
2235+ }
2236+
2237+ #[ cfg( not( no_global_oom_handling) ) ]
2238+ #[ stable( feature = "more_rc_default_impls" , since = "CURRENT_RUSTC_VERSION" ) ]
2239+ impl < T > Default for Rc < [ T ] > {
2240+ /// Creates an empty `[T]` inside an Rc
2241+ #[ inline]
2242+ fn default ( ) -> Self {
2243+ let arr: [ T ; 0 ] = [ ] ;
2244+ Rc :: from ( arr)
2245+ }
2246+ }
2247+
22272248#[ stable( feature = "rust1" , since = "1.0.0" ) ]
22282249trait RcEqIdent < T : ?Sized + PartialEq , A : Allocator > {
22292250 fn eq ( & self , other : & Rc < T , A > ) -> bool ;
Original file line number Diff line number Diff line change @@ -3300,6 +3300,27 @@ impl<T: Default> Default for Arc<T> {
33003300 }
33013301}
33023302
3303+ #[ cfg( not( no_global_oom_handling) ) ]
3304+ #[ stable( feature = "more_rc_default_impls" , since = "CURRENT_RUSTC_VERSION" ) ]
3305+ impl Default for Arc < str > {
3306+ /// Creates an empty str inside an Arc
3307+ #[ inline]
3308+ fn default ( ) -> Self {
3309+ Arc :: from ( "" )
3310+ }
3311+ }
3312+
3313+ #[ cfg( not( no_global_oom_handling) ) ]
3314+ #[ stable( feature = "more_rc_default_impls" , since = "CURRENT_RUSTC_VERSION" ) ]
3315+ impl < T > Default for Arc < [ T ] > {
3316+ /// Creates an empty `[T]` inside an Arc
3317+ #[ inline]
3318+ fn default ( ) -> Self {
3319+ let arr: [ T ; 0 ] = [ ] ;
3320+ Arc :: from ( arr)
3321+ }
3322+ }
3323+
33033324#[ stable( feature = "rust1" , since = "1.0.0" ) ]
33043325impl < T : ?Sized + Hash , A : Allocator > Hash for Arc < T , A > {
33053326 fn hash < H : Hasher > ( & self , state : & mut H ) {
You can’t perform that action at this time.
0 commit comments