@@ -40,6 +40,7 @@ enum Wrapper {
4040 // References
4141 Deref ,
4242 AsRef ,
43+ AsSlice ,
4344 Borrow ,
4445 BorrowSlice ,
4546 // Indexes
@@ -80,6 +81,7 @@ enum WrapperMut {
8081 // References
8182 DerefMut ,
8283 AsMut ,
84+ AsSliceMut ,
8385 BorrowMut ,
8486 BorrowSliceMut ,
8587 // Indexes
@@ -148,6 +150,7 @@ impl FromPath for Wrapper {
148150 "UpperExp" => Some ( Wrapper :: UpperExp ) ,
149151 "NoRefs" => Some ( Wrapper :: NoRefs ) ,
150152 "AsRef" => Some ( Wrapper :: AsRef ) ,
153+ "AsSlice" => Some ( Wrapper :: AsSlice ) ,
151154 "Deref" => Some ( Wrapper :: Deref ) ,
152155 "Borrow" => Some ( Wrapper :: Borrow ) ,
153156 "BorrowSlice" => Some ( Wrapper :: BorrowSlice ) ,
@@ -370,6 +373,17 @@ impl Wrapper {
370373 }
371374 }
372375 } ,
376+ Wrapper :: AsSlice => quote ! {
377+ #[ automatically_derived]
378+ impl #impl_generics AsRef <[ u8 ] > for #ident_name #ty_generics #where_clause
379+ {
380+ #[ inline]
381+ fn as_ref( & self ) -> & [ u8 ] {
382+ use #amplify_crate:: Wrapper ;
383+ AsRef :: <[ u8 ] >:: as_ref( Wrapper :: as_inner( self ) )
384+ }
385+ }
386+ } ,
373387 Wrapper :: Borrow => quote ! {
374388 #[ automatically_derived]
375389 impl #impl_generics :: core:: borrow:: Borrow <<#ident_name #impl_generics as #amplify_crate:: Wrapper >:: Inner > for #ident_name #ty_generics #where_clause {
@@ -682,6 +696,7 @@ impl FromPath for WrapperMut {
682696 "NoRefs" => Some ( WrapperMut :: NoRefs ) ,
683697 "DerefMut" => Some ( WrapperMut :: DerefMut ) ,
684698 "AsMut" => Some ( WrapperMut :: AsMut ) ,
699+ "AsSliceMut" => Some ( WrapperMut :: AsSliceMut ) ,
685700 "BorrowMut" => Some ( WrapperMut :: BorrowMut ) ,
686701 "BorrowSliceMut" => Some ( WrapperMut :: BorrowSliceMut ) ,
687702 "IndexMut" => Some ( WrapperMut :: IndexMut ) ,
@@ -778,6 +793,17 @@ impl WrapperMut {
778793 }
779794 }
780795 } ,
796+ WrapperMut :: AsSliceMut => quote ! {
797+ #[ automatically_derived]
798+ impl #impl_generics AsMut <[ u8 ] > for #ident_name #ty_generics #where_clause
799+ {
800+ #[ inline]
801+ fn as_mut( & mut self ) -> & mut [ u8 ] {
802+ use #amplify_crate:: WrapperMut ;
803+ AsMut :: <[ u8 ] >:: as_mut( WrapperMut :: as_inner_mut( self ) )
804+ }
805+ }
806+ } ,
781807 WrapperMut :: BorrowMut => quote ! {
782808 #[ automatically_derived]
783809 impl #impl_generics :: core:: borrow:: BorrowMut <<#ident_name #impl_generics as #amplify_crate:: Wrapper >:: Inner > for #ident_name #ty_generics #where_clause {
0 commit comments