diff options
| author | Brian Anderson <banderson@mozilla.com> | 2012-02-26 22:58:24 -0800 |
|---|---|---|
| committer | Brian Anderson <banderson@mozilla.com> | 2012-02-26 22:58:24 -0800 |
| commit | 0f054dfaeeedeb393715345b1739ad0e451ad08e (patch) | |
| tree | c70b56774895a5fbcda1f2bde470e73eecbf0981 | |
| parent | ac34cf96ad8f90dbeb979915508345cf200ab65f (diff) | |
| download | rust-0f054dfaeeedeb393715345b1739ad0e451ad08e.tar.gz rust-0f054dfaeeedeb393715345b1739ad0e451ad08e.zip | |
rustdoc: Add parallel folds for native mods
| -rw-r--r-- | src/rustdoc/fold.rs | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/src/rustdoc/fold.rs b/src/rustdoc/fold.rs index fe1225ffa59..5bb156cc59e 100644 --- a/src/rustdoc/fold.rs +++ b/src/rustdoc/fold.rs @@ -14,8 +14,10 @@ export default_seq_fold_impl; export default_seq_fold_type; export default_par_fold; export default_par_fold_mod; +export default_par_fold_nmod; export default_any_fold; export default_any_fold_mod; +export default_any_fold_nmod; enum fold<T> = t<T>; @@ -85,7 +87,7 @@ fn default_any_fold<T:send>(ctxt: T) -> fold<T> { {|f, d| default_seq_fold_crate(f, d)}, {|f, d| default_seq_fold_item(f, d)}, {|f, d| default_any_fold_mod(f, d)}, - {|f, d| default_seq_fold_nmod(f, d)}, + {|f, d| default_any_fold_nmod(f, d)}, {|f, d| default_seq_fold_fn(f, d)}, {|f, d| default_seq_fold_const(f, d)}, {|f, d| default_seq_fold_enum(f, d)}, @@ -119,7 +121,7 @@ fn default_par_fold<T:send>(ctxt: T) -> fold<T> { {|f, d| default_seq_fold_crate(f, d)}, {|f, d| default_seq_fold_item(f, d)}, {|f, d| default_par_fold_mod(f, d)}, - {|f, d| default_seq_fold_nmod(f, d)}, + {|f, d| default_par_fold_nmod(f, d)}, {|f, d| default_seq_fold_fn(f, d)}, {|f, d| default_seq_fold_const(f, d)}, {|f, d| default_seq_fold_enum(f, d)}, @@ -185,13 +187,39 @@ fn default_par_fold_mod<T:send>( } } +fn default_any_fold_nmod<T:send>( + fold: fold<T>, + doc: doc::nmoddoc +) -> doc::nmoddoc { + { + item: fold.fold_item(fold, doc.item), + fns: util::anymap(doc.fns) {|fndoc| + fold.fold_fn(fold, fndoc) + } + with doc + } +} + fn default_seq_fold_nmod<T>( fold: fold<T>, doc: doc::nmoddoc ) -> doc::nmoddoc { { item: fold.fold_item(fold, doc.item), - fns: vec::map(doc.fns) {|fndoc| + fns: util::seqmap(doc.fns) {|fndoc| + fold.fold_fn(fold, fndoc) + } + with doc + } +} + +fn default_par_fold_nmod<T:send>( + fold: fold<T>, + doc: doc::nmoddoc +) -> doc::nmoddoc { + { + item: fold.fold_item(fold, doc.item), + fns: util::parmap(doc.fns) {|fndoc| fold.fold_fn(fold, fndoc) } with doc |
