@@ -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:: 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:: type_visitable_derive
147+ ) ;
129148decl_derive ! ( [ Lift , attributes( lift) ] => lift:: lift_derive) ;
130149decl_derive ! (
131150 [ Diagnostic , attributes(
0 commit comments