@@ -93,6 +93,10 @@ fn write_mod_contents(
93
93
write_fn ( ctxt, fndoc) ;
94
94
}
95
95
96
+ for resdoc in * doc. resources {
97
+ write_res ( ctxt, resdoc) ;
98
+ }
99
+
96
100
for moddoc in * doc. mods {
97
101
write_mod ( ctxt, moddoc) ;
98
102
}
@@ -139,6 +143,12 @@ fn code_block_indent(s: str) -> str {
139
143
str:: connect ( indented, "\n " )
140
144
}
141
145
146
+ #[ test]
147
+ fn write_markdown_should_write_function_header ( ) {
148
+ let markdown = test:: render ( "fn func() { }" ) ;
149
+ assert str:: contains ( markdown, "### Function `func`" ) ;
150
+ }
151
+
142
152
#[ test]
143
153
fn should_write_the_function_signature ( ) {
144
154
let markdown = test:: render ( "#[doc = \" f\" ] fn a() { }" ) ;
@@ -168,6 +178,12 @@ fn should_correctly_indent_fn_signature() {
168
178
assert str:: contains ( markdown, " line 1\n line 2" ) ;
169
179
}
170
180
181
+ #[ test]
182
+ fn should_leave_blank_line_between_fn_header_and_sig ( ) {
183
+ let markdown = test:: render ( "#[doc(brief = \" brief\" )] fn a() { }" ) ;
184
+ assert str:: contains ( markdown, "Function `a`\n \n fn a()" ) ;
185
+ }
186
+
171
187
fn write_brief (
172
188
ctxt : ctxt ,
173
189
brief : option < str >
@@ -181,6 +197,20 @@ fn write_brief(
181
197
}
182
198
}
183
199
200
+ #[ test]
201
+ fn should_leave_blank_line_after_brief ( ) {
202
+ let markdown = test:: render ( "#[doc(brief = \" brief\" )] fn a() { }" ) ;
203
+ assert str:: contains ( markdown, "brief\n \n " ) ;
204
+ }
205
+
206
+ #[ test]
207
+ fn should_leave_blank_line_between_brief_and_desc ( ) {
208
+ let markdown = test:: render (
209
+ "#[doc(brief = \" brief\" , desc = \" desc\" )] fn a() { }"
210
+ ) ;
211
+ assert str:: contains ( markdown, "brief\n \n desc" ) ;
212
+ }
213
+
184
214
fn write_desc (
185
215
ctxt : ctxt ,
186
216
desc : option < str >
@@ -437,6 +467,33 @@ fn should_write_variant_list_with_signatures() {
437
467
\n * `c(int)` - a\n \n ") ;
438
468
}
439
469
470
+ fn write_res ( ctxt : ctxt , doc : doc:: resdoc ) {
471
+ write_header ( ctxt, h3, #fmt ( "Resource `%s`" , doc. name ) ) ;
472
+ write_sig ( ctxt, doc. sig ) ;
473
+ write_brief ( ctxt, doc. brief ) ;
474
+ write_desc ( ctxt, doc. desc ) ;
475
+ write_args ( ctxt, doc. args ) ;
476
+ }
477
+
478
+ #[ test]
479
+ fn should_write_resource_header ( ) {
480
+ let markdown = test:: render ( "resource r(a: bool) { }" ) ;
481
+ assert str:: contains ( markdown, "### Resource `r`" ) ;
482
+ }
483
+
484
+ #[ test]
485
+ fn should_write_resource_signature ( ) {
486
+ let markdown = test:: render ( "resource r(a: bool) { }" ) ;
487
+ assert str:: contains ( markdown, "\n resource r(a: bool)\n " ) ;
488
+ }
489
+
490
+ #[ test]
491
+ fn should_write_resource_args ( ) {
492
+ let markdown = test:: render ( "#[doc(args(a = \" b\" ))]\
493
+ resource r(a: bool) { }") ;
494
+ assert str:: contains ( markdown, "Arguments:\n \n * `a`: `bool` - b" ) ;
495
+ }
496
+
440
497
#[ cfg( test) ]
441
498
mod test {
442
499
fn render ( source : str ) -> str {
@@ -477,12 +534,6 @@ mod test {
477
534
assert str:: contains ( markdown, "# Crate belch" ) ;
478
535
}
479
536
480
- #[ test]
481
- fn write_markdown_should_write_function_header ( ) {
482
- let markdown = render ( "fn func() { }" ) ;
483
- assert str:: contains ( markdown, "### Function `func`" ) ;
484
- }
485
-
486
537
#[ test]
487
538
fn write_markdown_should_write_mod_headers ( ) {
488
539
let markdown = render ( "mod moo { }" ) ;
@@ -494,25 +545,4 @@ mod test {
494
545
let markdown = render ( "mod morp { }" ) ;
495
546
assert str:: contains ( markdown, "Module `morp`\n \n " ) ;
496
547
}
497
-
498
- #[ test]
499
- fn should_leave_blank_line_between_fn_header_and_sig ( ) {
500
- let markdown = render ( "#[doc(brief = \" brief\" )] fn a() { }" ) ;
501
- assert str:: contains ( markdown, "Function `a`\n \n fn a()" ) ;
502
- }
503
-
504
- #[ test]
505
- fn should_leave_blank_line_after_brief ( ) {
506
- let markdown = render ( "#[doc(brief = \" brief\" )] fn a() { }" ) ;
507
- assert str:: contains ( markdown, "brief\n \n " ) ;
508
- }
509
-
510
- #[ test]
511
- fn should_leave_blank_line_between_brief_and_desc ( ) {
512
- let markdown = render (
513
- "#[doc(brief = \" brief\" , desc = \" desc\" )] fn a() { }"
514
- ) ;
515
- assert str:: contains ( markdown, "brief\n \n desc" ) ;
516
- }
517
-
518
548
}
0 commit comments