@@ -124,8 +124,27 @@ decl_derive!([TyDecodable] => serialize::type_decodable_derive);
124124decl_derive ! ( [ TyEncodable ]  => serialize:: type_encodable_derive) ; 
125125decl_derive ! ( [ MetadataDecodable ]  => serialize:: meta_decodable_derive) ; 
126126decl_derive ! ( [ MetadataEncodable ]  => serialize:: meta_encodable_derive) ; 
127- decl_derive ! ( [ TypeFoldable ,  attributes( type_foldable) ]  => type_foldable:: type_foldable_derive) ; 
128- decl_derive ! ( [ TypeVisitable ,  attributes( type_visitable) ]  => type_visitable:: type_visitable_derive) ; 
127+ decl_derive ! ( 
128+     [ TypeFoldable ,  attributes( type_foldable) ]  =>
129+     /// Derives `TypeFoldable` for the annotated `struct` or `enum` (`union` is not supported). 
130+ /// 
131+ /// The fold will produce a value of the same struct or enum variant as the input, with 
132+ /// each field respectively folded using the `TypeFoldable` implementation for its type. 
133+ /// However, if a field of a struct or an enum variant is annotated with 
134+ /// `#[type_foldable(identity)]` then that field will retain its incumbent value (and its 
135+ /// type is not required to implement `TypeFoldable`). 
136+ :: type_foldable_derive
137+ ) ; 
138+ decl_derive ! ( 
139+     [ TypeVisitable ,  attributes( type_visitable) ]  =>
140+     /// Derives `TypeVisitable` for the annotated `struct` or `enum` (`union` is not supported). 
141+ /// 
142+ /// Each field of the struct or enum variant will be visited in definition order, using the 
143+ /// `TypeVisitable` implementation for its type. However, if a field of a struct or an enum 
144+ /// variant is annotated with `#[type_visitable(ignore)]` then that field will not be 
145+ /// visited (and its type is not required to implement `TypeVisitable`). 
146+ :: type_visitable_derive
147+ ) ; 
129148decl_derive ! ( [ Lift ,  attributes( lift) ]  => lift:: lift_derive) ; 
130149decl_derive ! ( 
131150    [ Diagnostic ,  attributes( 
0 commit comments