moved collections from libextra into libcollections
This commit is contained in:
parent
87fe3ccf09
commit
d81bb441da
14
mk/crates.mk
14
mk/crates.mk
@ -50,21 +50,22 @@
|
||||
################################################################################
|
||||
|
||||
TARGET_CRATES := std extra green rustuv native flate arena glob term semver \
|
||||
uuid serialize sync getopts
|
||||
uuid serialize sync getopts collections
|
||||
HOST_CRATES := syntax rustc rustdoc
|
||||
CRATES := $(TARGET_CRATES) $(HOST_CRATES)
|
||||
TOOLS := compiletest rustdoc rustc
|
||||
|
||||
DEPS_std := native:rustrt
|
||||
DEPS_extra := std term sync serialize getopts
|
||||
DEPS_extra := std term sync serialize getopts collections
|
||||
DEPS_green := std
|
||||
DEPS_rustuv := std native:uv native:uv_support
|
||||
DEPS_native := std
|
||||
DEPS_syntax := std extra term serialize
|
||||
DEPS_rustc := syntax native:rustllvm flate arena serialize sync getopts
|
||||
DEPS_rustdoc := rustc native:sundown serialize sync getopts
|
||||
DEPS_syntax := std extra term serialize collections
|
||||
DEPS_rustc := syntax native:rustllvm flate arena serialize sync getopts \
|
||||
collections
|
||||
DEPS_rustdoc := rustc native:sundown serialize sync getopts collections
|
||||
DEPS_flate := std native:miniz
|
||||
DEPS_arena := std extra
|
||||
DEPS_arena := std collections
|
||||
DEPS_glob := std
|
||||
DEPS_serialize := std
|
||||
DEPS_term := std
|
||||
@ -72,6 +73,7 @@ DEPS_semver := std
|
||||
DEPS_uuid := std serialize
|
||||
DEPS_sync := std
|
||||
DEPS_getopts := std
|
||||
DEPS_collections := std serialize
|
||||
|
||||
TOOL_DEPS_compiletest := extra green rustuv getopts
|
||||
TOOL_DEPS_rustdoc := rustdoc green rustuv
|
||||
|
@ -38,6 +38,7 @@ li {list-style-type: none; }
|
||||
* [The Rust compiler, `librustc`](rustc/index.html)
|
||||
|
||||
* [The `arena` allocation library](arena/index.html)
|
||||
* [The `collections` library](collections/index.html)
|
||||
* [The `flate` compression library](flate/index.html)
|
||||
* [The `getopts` argument parsing library](getopts/index.html)
|
||||
* [The `glob` file path matching library](glob/index.html)
|
||||
|
@ -881,7 +881,7 @@ use foo::baz::foobaz; // good: foo is at the root of the crate
|
||||
mod foo {
|
||||
extern mod extra;
|
||||
|
||||
use foo::extra::list; // good: foo is at crate root
|
||||
use foo::extra::time; // good: foo is at crate root
|
||||
// use extra::*; // bad: extra is not at the crate root
|
||||
use self::baz::foobaz; // good: self refers to module 'foo'
|
||||
use foo::bar::foobar; // good: foo is at crate root
|
||||
|
@ -22,10 +22,12 @@
|
||||
#[allow(missing_doc)];
|
||||
#[feature(managed_boxes)];
|
||||
|
||||
extern mod extra;
|
||||
extern mod collections;
|
||||
|
||||
use extra::list::{List, Cons, Nil};
|
||||
use extra::list;
|
||||
#[cfg(test)] extern mod extra;
|
||||
|
||||
use collections::list::{List, Cons, Nil};
|
||||
use collections::list;
|
||||
|
||||
use std::cast::{transmute, transmute_mut, transmute_mut_region};
|
||||
use std::cast;
|
||||
|
@ -44,7 +44,7 @@ pub mod bench {
|
||||
use std::container::MutableMap;
|
||||
use std::{vec, rand};
|
||||
use std::rand::Rng;
|
||||
use test::BenchHarness;
|
||||
use extra::test::BenchHarness;
|
||||
|
||||
pub fn insert_rand_n<M:MutableMap<uint,uint>>(n: uint,
|
||||
map: &mut M,
|
@ -28,7 +28,7 @@ use std::util;
|
||||
use std::iter::Rev;
|
||||
use std::iter;
|
||||
|
||||
use container::Deque;
|
||||
use deque::Deque;
|
||||
|
||||
use serialize::{Encodable, Decodable, Encoder, Decoder};
|
||||
|
||||
@ -657,7 +657,7 @@ impl<D:Decoder,T:Decodable<D>> Decodable<D> for DList<T> {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use container::Deque;
|
||||
use deque::Deque;
|
||||
use extra::test;
|
||||
use std::rand;
|
||||
use super::{DList, Node, ListInsertion};
|
46
src/libcollections/lib.rs
Normal file
46
src/libcollections/lib.rs
Normal file
@ -0,0 +1,46 @@
|
||||
// Copyright 2013-2014 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
/*!
|
||||
* Collection types.
|
||||
*/
|
||||
|
||||
#[crate_id = "collections#0.10-pre"];
|
||||
#[crate_type = "rlib"];
|
||||
#[crate_type = "dylib"];
|
||||
#[license = "MIT/ASL2"];
|
||||
|
||||
#[feature(macro_rules, managed_boxes)];
|
||||
|
||||
#[cfg(test)] extern mod extra;
|
||||
|
||||
extern mod serialize;
|
||||
|
||||
pub use bitv::Bitv;
|
||||
pub use btree::BTree;
|
||||
pub use deque::Deque;
|
||||
pub use dlist::DList;
|
||||
pub use list::List;
|
||||
pub use lru_cache::LruCache;
|
||||
pub use priority_queue::PriorityQueue;
|
||||
pub use ringbuf::RingBuf;
|
||||
pub use smallintmap::SmallIntMap;
|
||||
pub use treemap::{TreeMap, TreeSet};
|
||||
|
||||
pub mod bitv;
|
||||
pub mod btree;
|
||||
pub mod deque;
|
||||
pub mod dlist;
|
||||
pub mod list;
|
||||
pub mod lru_cache;
|
||||
pub mod priority_queue;
|
||||
pub mod ringbuf;
|
||||
pub mod smallintmap;
|
||||
pub mod treemap;
|
@ -153,7 +153,7 @@ pub fn each<T>(l: @List<T>, f: |&T| -> bool) -> bool {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use list::*;
|
||||
use list::{List, Nil, from_vec, head, is_empty, tail};
|
||||
use list;
|
||||
|
||||
use std::option;
|
@ -17,7 +17,7 @@
|
||||
//! # Example
|
||||
//!
|
||||
//! ```rust
|
||||
//! use extra::lru_cache::LruCache;
|
||||
//! use collections::LruCache;
|
||||
//!
|
||||
//! let mut cache: LruCache<int, int> = LruCache::new(2);
|
||||
//! cache.put(1, 10);
|
@ -17,7 +17,7 @@ use std::num;
|
||||
use std::vec;
|
||||
use std::iter::{Rev, RandomAccessIterator};
|
||||
|
||||
use container::Deque;
|
||||
use deque::Deque;
|
||||
|
||||
use serialize::{Encodable, Decodable, Encoder, Decoder};
|
||||
|
||||
@ -431,7 +431,7 @@ impl<D:Decoder,T:Decodable<D>> Decodable<D> for RingBuf<T> {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use container::Deque;
|
||||
use deque::Deque;
|
||||
use extra::test;
|
||||
use std::clone::Clone;
|
||||
use std::cmp::Eq;
|
@ -471,9 +471,9 @@ mod test_map {
|
||||
#[cfg(test)]
|
||||
mod bench {
|
||||
|
||||
use super::*;
|
||||
use test::BenchHarness;
|
||||
use container::bench::*;
|
||||
use super::SmallIntMap;
|
||||
use extra::test::BenchHarness;
|
||||
use deque::bench::{insert_rand_n, insert_seq_n, find_rand_n, find_seq_n};
|
||||
|
||||
// Find seq
|
||||
#[bench]
|
@ -1495,9 +1495,9 @@ mod test_treemap {
|
||||
#[cfg(test)]
|
||||
mod bench {
|
||||
|
||||
use super::*;
|
||||
use test::BenchHarness;
|
||||
use container::bench::*;
|
||||
use super::TreeMap;
|
||||
use extra::test::BenchHarness;
|
||||
use deque::bench::{insert_rand_n, insert_seq_n, find_rand_n, find_seq_n};
|
||||
|
||||
// Find seq
|
||||
#[bench]
|
||||
@ -1555,7 +1555,7 @@ mod bench {
|
||||
#[cfg(test)]
|
||||
mod test_set {
|
||||
|
||||
use super::*;
|
||||
use super::{TreeMap, TreeSet};
|
||||
|
||||
#[test]
|
||||
fn test_clear() {
|
@ -98,9 +98,11 @@ A basic `ToJson` example using a TreeMap of attribute name / attribute value:
|
||||
|
||||
|
||||
```rust
|
||||
extern mod collections;
|
||||
|
||||
use extra::json;
|
||||
use extra::json::ToJson;
|
||||
use extra::treemap::TreeMap;
|
||||
use collections::TreeMap;
|
||||
|
||||
pub struct MyStruct {
|
||||
attr1: u8,
|
||||
@ -185,10 +187,12 @@ Example of `ToJson` trait implementation for TestStruct1.
|
||||
|
||||
```rust
|
||||
extern mod serialize;
|
||||
extern mod collections;
|
||||
|
||||
use extra::json;
|
||||
use extra::json::ToJson;
|
||||
use serialize::{Encodable, Decodable};
|
||||
use extra::treemap::TreeMap;
|
||||
use collections::TreeMap;
|
||||
|
||||
#[deriving(Decodable, Encodable)] // generate Decodable, Encodable impl.
|
||||
pub struct TestStruct1 {
|
||||
@ -236,7 +240,7 @@ use std::to_str;
|
||||
|
||||
use serialize::Encodable;
|
||||
use serialize;
|
||||
use treemap::TreeMap;
|
||||
use collections::TreeMap;
|
||||
|
||||
macro_rules! if_ok( ($e:expr) => (
|
||||
match $e { Ok(e) => e, Err(e) => { self.error = Err(e); return } }
|
||||
@ -1588,7 +1592,7 @@ mod tests {
|
||||
|
||||
use std::io;
|
||||
use serialize::{Encodable, Decodable};
|
||||
use treemap::TreeMap;
|
||||
use collections::TreeMap;
|
||||
|
||||
#[deriving(Eq, Encodable, Decodable)]
|
||||
enum Animal {
|
||||
|
@ -38,6 +38,8 @@ extern mod sync;
|
||||
#[cfg(not(stage0))]
|
||||
extern mod serialize;
|
||||
|
||||
extern mod collections;
|
||||
|
||||
#[cfg(stage0)]
|
||||
pub mod serialize {
|
||||
#[allow(missing_doc)];
|
||||
@ -47,29 +49,10 @@ pub mod serialize {
|
||||
EncoderHelpers, DecoderHelpers};
|
||||
}
|
||||
|
||||
#[cfg(stage0)]
|
||||
macro_rules! if_ok (
|
||||
($e:expr) => (match $e { Ok(e) => e, Err(e) => return Err(e) })
|
||||
)
|
||||
|
||||
// Utility modules
|
||||
|
||||
pub mod c_vec;
|
||||
|
||||
// Collections
|
||||
|
||||
pub mod container;
|
||||
pub mod bitv;
|
||||
pub mod list;
|
||||
pub mod ringbuf;
|
||||
pub mod priority_queue;
|
||||
pub mod smallintmap;
|
||||
|
||||
pub mod dlist;
|
||||
pub mod treemap;
|
||||
pub mod btree;
|
||||
pub mod lru_cache;
|
||||
|
||||
// And ... other stuff
|
||||
|
||||
pub mod url;
|
||||
|
@ -24,7 +24,7 @@ use serialize::Decodable;
|
||||
use stats::Stats;
|
||||
use stats;
|
||||
use time::precise_time_ns;
|
||||
use treemap::TreeMap;
|
||||
use collections::TreeMap;
|
||||
|
||||
use std::clone::Clone;
|
||||
use std::io;
|
||||
|
@ -14,7 +14,7 @@ use json;
|
||||
use json::ToJson;
|
||||
use serialize::{Encoder, Encodable, Decoder, Decodable};
|
||||
use sync::{Arc,RWArc};
|
||||
use treemap::TreeMap;
|
||||
use collections::TreeMap;
|
||||
use std::str;
|
||||
use std::io;
|
||||
use std::io::{File, MemWriter};
|
||||
|
@ -38,6 +38,7 @@ extern mod syntax;
|
||||
extern mod serialize;
|
||||
extern mod sync;
|
||||
extern mod getopts;
|
||||
extern mod collections;
|
||||
|
||||
use back::link;
|
||||
use driver::session;
|
||||
|
@ -56,7 +56,7 @@ use std::u16;
|
||||
use std::u32;
|
||||
use std::u64;
|
||||
use std::u8;
|
||||
use extra::smallintmap::SmallIntMap;
|
||||
use collections::SmallIntMap;
|
||||
use syntax::ast_map;
|
||||
use syntax::ast_util::IdVisitingOperation;
|
||||
use syntax::attr::{AttrMetaMethods, AttributeMethods};
|
||||
|
@ -20,7 +20,7 @@ pub use middle::typeck::infer::resolve::{resolve_ivar, resolve_all};
|
||||
pub use middle::typeck::infer::resolve::{resolve_nested_tvar};
|
||||
pub use middle::typeck::infer::resolve::{resolve_rvar};
|
||||
|
||||
use extra::smallintmap::SmallIntMap;
|
||||
use collections::SmallIntMap;
|
||||
use middle::ty::{TyVid, IntVid, FloatVid, RegionVid, Vid};
|
||||
use middle::ty;
|
||||
use middle::ty_fold;
|
||||
|
@ -9,7 +9,7 @@
|
||||
// except according to those terms.
|
||||
|
||||
|
||||
use extra::smallintmap::SmallIntMap;
|
||||
use collections::SmallIntMap;
|
||||
|
||||
use middle::ty::{Vid, expected_found, IntVarValue};
|
||||
use middle::ty;
|
||||
|
@ -71,8 +71,8 @@ use util::ppaux;
|
||||
use std::cell::RefCell;
|
||||
use std::hashmap::HashMap;
|
||||
use std::rc::Rc;
|
||||
use extra::list::List;
|
||||
use extra::list;
|
||||
use collections::List;
|
||||
use collections::list;
|
||||
use syntax::codemap::Span;
|
||||
use syntax::print::pprust::*;
|
||||
use syntax::{ast, ast_map, abi};
|
||||
|
@ -21,6 +21,7 @@ extern mod extra;
|
||||
extern mod serialize;
|
||||
extern mod sync;
|
||||
extern mod getopts;
|
||||
extern mod collections;
|
||||
|
||||
use std::local_data;
|
||||
use std::io;
|
||||
@ -326,7 +327,7 @@ fn json_output(crate: clean::Crate, res: ~[plugins::PluginJson],
|
||||
// "crate": { parsed crate ... },
|
||||
// "plugins": { output of plugins ... }
|
||||
// }
|
||||
let mut json = ~extra::treemap::TreeMap::new();
|
||||
let mut json = ~collections::TreeMap::new();
|
||||
json.insert(~"schema", json::String(SCHEMA_VERSION.to_owned()));
|
||||
let plugins_json = ~res.move_iter().filter_map(|opt| opt).collect();
|
||||
|
||||
|
@ -22,7 +22,7 @@ use util::small_vector::SmallVector;
|
||||
|
||||
use std::logging;
|
||||
use std::cell::RefCell;
|
||||
use extra::smallintmap::SmallIntMap;
|
||||
use collections::SmallIntMap;
|
||||
|
||||
#[deriving(Clone, Eq)]
|
||||
pub enum PathElem {
|
||||
|
@ -35,6 +35,7 @@ This API is completely unstable and subject to change.
|
||||
extern mod extra;
|
||||
extern mod serialize;
|
||||
extern mod term;
|
||||
extern mod collections;
|
||||
|
||||
pub mod util {
|
||||
pub mod interner;
|
||||
|
@ -9,9 +9,10 @@
|
||||
// except according to those terms.
|
||||
|
||||
extern mod extra;
|
||||
extern mod collections;
|
||||
|
||||
use extra::time;
|
||||
use extra::treemap::TreeMap;
|
||||
use collections::TreeMap;
|
||||
use std::hashmap::{HashMap, HashSet};
|
||||
use std::os;
|
||||
use std::rand::{Rng, IsaacRng, SeedableRng};
|
||||
|
@ -11,9 +11,10 @@
|
||||
// except according to those terms.
|
||||
|
||||
extern mod extra;
|
||||
extern mod collections;
|
||||
|
||||
use extra::bitv::BitvSet;
|
||||
use extra::treemap::TreeSet;
|
||||
use collections::bitv::BitvSet;
|
||||
use collections::TreeSet;
|
||||
use std::hashmap::HashSet;
|
||||
use std::os;
|
||||
use std::rand;
|
||||
|
@ -11,8 +11,9 @@
|
||||
// Microbenchmark for the smallintmap library
|
||||
|
||||
extern mod extra;
|
||||
extern mod collections;
|
||||
|
||||
use extra::smallintmap::SmallIntMap;
|
||||
use collections::SmallIntMap;
|
||||
use std::os;
|
||||
use std::uint;
|
||||
|
||||
|
@ -11,8 +11,9 @@
|
||||
#[feature(managed_boxes)];
|
||||
|
||||
extern mod extra;
|
||||
extern mod collections;
|
||||
|
||||
use extra::list::{List, Cons, Nil};
|
||||
use collections::list::{List, Cons, Nil};
|
||||
use extra::time::precise_time_s;
|
||||
use std::os;
|
||||
use std::task;
|
||||
|
@ -10,8 +10,8 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
extern mod extra;
|
||||
use extra::bitv::Bitv;
|
||||
extern mod collections;
|
||||
use collections::Bitv;
|
||||
|
||||
fn bitv_test() {
|
||||
let mut v1 = ~Bitv::new(31, false);
|
||||
|
@ -10,9 +10,9 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
extern mod extra;
|
||||
use extra::ringbuf::RingBuf;
|
||||
use extra::container::Deque;
|
||||
extern mod collections;
|
||||
use collections::RingBuf;
|
||||
use collections::Deque;
|
||||
|
||||
pub fn main() {
|
||||
let mut q = RingBuf::new();
|
||||
|
@ -10,8 +10,8 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
extern mod extra;
|
||||
use extra::list;
|
||||
extern mod collections;
|
||||
use collections::list;
|
||||
|
||||
#[deriving(Clone)]
|
||||
enum foo {
|
||||
|
@ -12,9 +12,9 @@
|
||||
|
||||
#[feature(managed_boxes)];
|
||||
|
||||
extern mod extra;
|
||||
extern mod collections;
|
||||
|
||||
use extra::list::{List, Cons, Nil, head, is_empty};
|
||||
use collections::list::{List, Cons, Nil, head, is_empty};
|
||||
|
||||
fn pure_length_go<T:Clone>(ls: @List<T>, acc: uint) -> uint {
|
||||
match *ls { Nil => { acc } Cons(_, tl) => { pure_length_go(tl, acc + 1u) } }
|
||||
|
@ -8,7 +8,7 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
extern mod extra;
|
||||
extern mod collections;
|
||||
|
||||
use std::clone::{Clone, DeepClone};
|
||||
use std::cmp::{TotalEq, Ord, TotalOrd, Equiv};
|
||||
@ -18,7 +18,7 @@ use std::default::Default;
|
||||
use std::send_str::{SendStr, SendStrOwned, SendStrStatic};
|
||||
use std::str::Str;
|
||||
use std::to_str::ToStr;
|
||||
use self::extra::treemap::TreeMap;
|
||||
use self::collections::TreeMap;
|
||||
use std::option::Some;
|
||||
|
||||
pub fn main() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user