@@ -18,7 +18,8 @@ fn run(
18
18
let fold = fold:: fold ( {
19
19
fold_mod: fold_mod,
20
20
fold_const: fold_const,
21
- fold_fn: fold_fn
21
+ fold_fn: fold_fn,
22
+ fold_enum: fold_enum
22
23
with * fold:: default_seq_fold ( op)
23
24
} ) ;
24
25
fold. fold_crate ( fold, doc)
@@ -68,3 +69,47 @@ fn fold_fn(fold: fold::fold<op>, doc: doc::fndoc) -> doc::fndoc {
68
69
with * doc
69
70
}
70
71
}
72
+
73
+ fn fold_enum ( fold : fold:: fold < op > , doc : doc:: enumdoc ) -> doc:: enumdoc {
74
+ ~{
75
+ brief: maybe_apply_op ( fold. ctxt , doc. brief ) ,
76
+ desc: maybe_apply_op ( fold. ctxt , doc. desc ) ,
77
+ variants: vec:: map ( doc. variants ) { |variant|
78
+ ~{
79
+ desc: maybe_apply_op ( fold. ctxt , variant. desc )
80
+ with * variant
81
+ }
82
+ }
83
+ with * doc
84
+ }
85
+ }
86
+
87
+ #[ test]
88
+ fn should_execute_op_on_enum_brief ( ) {
89
+ let source = "#[doc(brief = \" a \" )] enum a { b }" ;
90
+ let srv = astsrv:: mk_srv_from_str ( source) ;
91
+ let doc = extract:: from_srv ( srv, "" ) ;
92
+ let doc = attr_pass:: mk_pass ( ) ( srv, doc) ;
93
+ let doc = mk_pass ( str:: trim) ( srv, doc) ;
94
+ assert doc. topmod . enums [ 0 ] . brief == some ( "a" ) ;
95
+ }
96
+
97
+ #[ test]
98
+ fn should_execute_op_on_enum_desc ( ) {
99
+ let source = "#[doc(desc = \" a \" )] enum a { b }" ;
100
+ let srv = astsrv:: mk_srv_from_str ( source) ;
101
+ let doc = extract:: from_srv ( srv, "" ) ;
102
+ let doc = attr_pass:: mk_pass ( ) ( srv, doc) ;
103
+ let doc = mk_pass ( str:: trim) ( srv, doc) ;
104
+ assert doc. topmod . enums [ 0 ] . desc == some ( "a" ) ;
105
+ }
106
+
107
+ #[ test]
108
+ fn should_execute_op_on_variant_desc ( ) {
109
+ let source = "enum a { #[doc = \" a \" ] b }" ;
110
+ let srv = astsrv:: mk_srv_from_str ( source) ;
111
+ let doc = extract:: from_srv ( srv, "" ) ;
112
+ let doc = attr_pass:: mk_pass ( ) ( srv, doc) ;
113
+ let doc = mk_pass ( str:: trim) ( srv, doc) ;
114
+ assert doc. topmod . enums [ 0 ] . variants [ 0 ] . desc == some ( "a" ) ;
115
+ }
0 commit comments