From bb9e1e2660990012c35ee975530b0b8b3136baf0 Mon Sep 17 00:00:00 2001 From: Graydon Hoare Date: Wed, 20 Mar 2013 12:49:22 -0700 Subject: [PATCH] core: add Reader, Writer, ReaderUtil, WriterUtil to prelude. Close #4182. --- src/libcore/io.rs | 4 +++- src/libcore/prelude.rs | 1 + src/librustdoc/markdown_pass.rs | 40 +++++++++++++++---------------- src/librustdoc/markdown_writer.rs | 14 +++++------ 4 files changed, 31 insertions(+), 28 deletions(-) diff --git a/src/libcore/io.rs b/src/libcore/io.rs index 50e7a42b7b1..0879d1bd900 100644 --- a/src/libcore/io.rs +++ b/src/libcore/io.rs @@ -21,7 +21,9 @@ use libc; use libc::{c_int, c_long, c_uint, c_void, size_t, ssize_t}; use libc::consts::os::posix88::*; use os; -use prelude::*; +use cast; +use path::Path; +use ops::Drop; use ptr; use result; use str; diff --git a/src/libcore/prelude.rs b/src/libcore/prelude.rs index 1710373b1e7..430195741ab 100644 --- a/src/libcore/prelude.rs +++ b/src/libcore/prelude.rs @@ -43,6 +43,7 @@ pub use tuple::{CopyableTuple, ImmutableTuple, ExtendedTupleOps}; pub use vec::{CopyableVector, ImmutableVector}; pub use vec::{ImmutableEqVector, ImmutableCopyableVector}; pub use vec::{OwnedVector, OwnedCopyableVector}; +pub use io::{Reader, ReaderUtil, Writer, WriterUtil}; /* Reexported runtime types */ pub use comm::{stream, Port, Chan, GenericChan, GenericSmartChan, GenericPort, Peekable}; diff --git a/src/librustdoc/markdown_pass.rs b/src/librustdoc/markdown_pass.rs index 70d5c730569..6cb840fb937 100644 --- a/src/librustdoc/markdown_pass.rs +++ b/src/librustdoc/markdown_pass.rs @@ -127,7 +127,7 @@ fn write_page(ctxt: &Ctxt, page: &doc::Page) { write_item_no_header(ctxt, doc); } } - ctxt.w.write_done(); + ctxt.w.put_done(); } #[test] @@ -146,8 +146,8 @@ fn should_request_new_writer_for_each_page() { } fn write_title(ctxt: &Ctxt, page: doc::Page) { - ctxt.w.write_line(fmt!("%% %s", make_title(page))); - ctxt.w.write_line(~""); + ctxt.w.put_line(fmt!("%% %s", make_title(page))); + ctxt.w.put_line(~""); } fn make_title(page: doc::Page) -> ~str { @@ -198,8 +198,8 @@ fn write_header(ctxt: &Ctxt, lvl: Hlvl, doc: doc::ItemTag) { fn write_header_(ctxt: &Ctxt, lvl: Hlvl, title: ~str) { let hashes = str::from_chars(vec::from_elem(lvl as uint, '#')); - ctxt.w.write_line(fmt!("%s %s", hashes, title)); - ctxt.w.write_line(~""); + ctxt.w.put_line(fmt!("%s %s", hashes, title)); + ctxt.w.put_line(~""); } pub fn header_kind(doc: doc::ItemTag) -> ~str { @@ -332,8 +332,8 @@ fn write_desc( ) { match desc { Some(desc) => { - ctxt.w.write_line(desc); - ctxt.w.write_line(~""); + ctxt.w.put_line(desc); + ctxt.w.put_line(~""); } None => () } @@ -347,8 +347,8 @@ fn write_sections(ctxt: &Ctxt, sections: &[doc::Section]) { fn write_section(ctxt: &Ctxt, section: doc::Section) { write_header_(ctxt, H4, copy section.header); - ctxt.w.write_line(copy section.body); - ctxt.w.write_line(~""); + ctxt.w.put_line(copy section.body); + ctxt.w.put_line(~""); } #[test] @@ -398,7 +398,7 @@ fn write_item_(ctxt: &Ctxt, doc: doc::ItemTag, write_header: bool) { doc::TraitTag(TraitDoc) => write_trait(ctxt, TraitDoc), doc::ImplTag(ImplDoc) => write_impl(ctxt, ImplDoc), doc::TyTag(TyDoc) => write_type(ctxt, TyDoc), - doc::StructTag(StructDoc) => write_struct(ctxt, StructDoc), + doc::StructTag(StructDoc) => put_struct(ctxt, StructDoc), } } @@ -428,13 +428,13 @@ fn write_index(ctxt: &Ctxt, index: doc::Index) { let header = header_text_(entry.kind, entry.name); let id = copy entry.link; if entry.brief.is_some() { - ctxt.w.write_line(fmt!("* [%s](%s) - %s", + ctxt.w.put_line(fmt!("* [%s](%s) - %s", header, id, (&entry.brief).get())); } else { - ctxt.w.write_line(fmt!("* [%s](%s)", header, id)); + ctxt.w.put_line(fmt!("* [%s](%s)", header, id)); } } - ctxt.w.write_line(~""); + ctxt.w.put_line(~""); } #[test] @@ -526,8 +526,8 @@ fn write_fnlike( fn write_sig(ctxt: &Ctxt, sig: Option<~str>) { match sig { Some(sig) => { - ctxt.w.write_line(code_block_indent(sig)); - ctxt.w.write_line(~""); + ctxt.w.put_line(code_block_indent(sig)); + ctxt.w.put_line(~""); } None => fail!(~"unimplemented") } @@ -641,7 +641,7 @@ fn write_variants( write_variant(ctxt, copy *variant); } - ctxt.w.write_line(~""); + ctxt.w.put_line(~""); } fn write_variant(ctxt: &Ctxt, doc: doc::VariantDoc) { @@ -649,10 +649,10 @@ fn write_variant(ctxt: &Ctxt, doc: doc::VariantDoc) { let sig = (&doc.sig).get(); match copy doc.desc { Some(desc) => { - ctxt.w.write_line(fmt!("* `%s` - %s", sig, desc)); + ctxt.w.put_line(fmt!("* `%s` - %s", sig, desc)); } None => { - ctxt.w.write_line(fmt!("* `%s`", sig)); + ctxt.w.put_line(fmt!("* `%s`", sig)); } } } @@ -804,7 +804,7 @@ fn should_write_type_signature() { fail_unless!(str::contains(markdown, ~"\n\n type t = int\n\n")); } -fn write_struct( +fn put_struct( ctxt: &Ctxt, doc: doc::StructDoc ) { @@ -813,7 +813,7 @@ fn write_struct( } #[test] -fn should_write_struct_header() { +fn should_put_struct_header() { let markdown = test::render(~"struct S { field: () }"); fail_unless!(str::contains(markdown, ~"## Struct `S`\n\n")); } diff --git a/src/librustdoc/markdown_writer.rs b/src/librustdoc/markdown_writer.rs index 45fef5b80b8..f8389732414 100644 --- a/src/librustdoc/markdown_writer.rs +++ b/src/librustdoc/markdown_writer.rs @@ -34,21 +34,21 @@ pub type Writer = ~fn(v: WriteInstr); pub type WriterFactory = ~fn(page: doc::Page) -> Writer; pub trait WriterUtils { - fn write_str(&self, +str: ~str); - fn write_line(&self, +str: ~str); - fn write_done(&self); + fn put_str(&self, +str: ~str); + fn put_line(&self, +str: ~str); + fn put_done(&self); } impl WriterUtils for Writer { - fn write_str(&self, str: ~str) { + fn put_str(&self, str: ~str) { (*self)(Write(str)); } - fn write_line(&self, str: ~str) { - self.write_str(str + ~"\n"); + fn put_line(&self, str: ~str) { + self.put_str(str + ~"\n"); } - fn write_done(&self) { + fn put_done(&self) { (*self)(Done) } }