]> git.lizzy.rs Git - rust.git/blob - src/libextra/extra.rs
046eaa92c1182307571abcbeb08a9fb8deca6ff5
[rust.git] / src / libextra / extra.rs
1 // Copyright 2012-2013 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11 /*!
12
13 Rust extras.
14
15 The `extra` crate is a set of useful modules for a variety of
16 purposes, including collections, numerics, I/O, serialization,
17 and concurrency.
18
19 Rust extras are part of the standard Rust distribution.
20
21 */
22
23 #[link(name = "extra",
24        vers = "0.8-pre",
25        uuid = "122bed0b-c19b-4b82-b0b7-7ae8aead7297",
26        url = "https://github.com/mozilla/rust/tree/master/src/libextra")];
27
28 #[doc(html_logo_url = "http://www.rust-lang.org/logos/rust-logo-128x128-blk.png",
29       html_favicon_url = "http://www.rust-lang.org/favicon.ico",
30       passes = "strip-hidden")];
31
32 #[comment = "Rust extras"];
33 #[license = "MIT/ASL2"];
34 #[crate_type = "lib"];
35
36 #[deny(non_camel_case_types)];
37 #[deny(missing_doc)];
38
39 use std::str::{StrSlice, OwnedStr};
40
41 pub use std::os;
42
43 // Utility modules
44
45 pub mod c_vec;
46 pub mod io_util;
47 pub mod rc;
48
49 // Concurrency
50
51 pub mod sync;
52 pub mod arc;
53 pub mod comm;
54 pub mod future;
55 pub mod task_pool;
56 pub mod flatpipes;
57
58 // Collections
59
60 pub mod container;
61 pub mod bitv;
62 pub mod list;
63 pub mod ringbuf;
64 pub mod priority_queue;
65 pub mod smallintmap;
66
67 pub mod sort;
68
69 pub mod dlist;
70 pub mod treemap;
71
72 // Crypto
73 #[path="crypto/cryptoutil.rs"]
74 mod cryptoutil;
75 #[path="crypto/digest.rs"]
76 pub mod digest;
77 #[path="crypto/md5.rs"]
78 pub mod md5;
79 #[path="crypto/sha1.rs"]
80 pub mod sha1;
81 #[path="crypto/sha2.rs"]
82 pub mod sha2;
83
84 // And ... other stuff
85
86 pub mod url;
87 pub mod ebml;
88 pub mod getopts;
89 pub mod json;
90 pub mod md4;
91 pub mod tempfile;
92 pub mod glob;
93 pub mod term;
94 pub mod time;
95 pub mod arena;
96 pub mod base64;
97 pub mod rl;
98 pub mod workcache;
99 pub mod enum_set;
100 #[path="num/bigint.rs"]
101 pub mod bigint;
102 #[path="num/rational.rs"]
103 pub mod rational;
104 #[path="num/complex.rs"]
105 pub mod complex;
106 pub mod stats;
107 pub mod semver;
108 pub mod fileinput;
109 pub mod flate;
110 pub mod hex;
111 pub mod uuid;
112
113
114 #[cfg(unicode)]
115 mod unicode;
116
117 #[path="terminfo/terminfo.rs"]
118 pub mod terminfo;
119
120 // Compiler support modules
121
122 pub mod test;
123 pub mod serialize;
124
125 // A curious inner-module that's not exported that contains the binding
126 // 'extra' so that macro-expanded references to extra::serialize and such
127 // can be resolved within libextra.
128 #[doc(hidden)]
129 pub mod extra {
130     pub use serialize;
131     pub use test;
132
133     // For bootstrapping.
134     pub use std::clone;
135     pub use std::condition;
136     pub use std::cmp;
137     pub use std::sys;
138     pub use std::unstable;
139     pub use std::str;
140     pub use std::os;
141 }