// Copyright 2012 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.

/*!

The Rust standard library.

The Rust standand library provides a number of useful features that are
not required in or otherwise suitable for the core library.

*/

#[link(name = "std",
       vers = "0.6",
       uuid = "122bed0b-c19b-4b82-b0b7-7ae8aead7297",
       url = "https://github.com/mozilla/rust/tree/master/src/libstd")];

#[comment = "The Rust standard library"];
#[license = "MIT"];
#[crate_type = "lib"];

#[no_core];

#[allow(vecs_implicitly_copyable)];
#[deny(non_camel_case_types)];
// XXX this is set to allow because there are two methods in encoding
// that can't be silenced otherwise. Most every module is set to forbid
#[allow(deprecated_mode)];
#[forbid(deprecated_pattern)];

extern mod core(vers = "0.6");
use core::*;

// General io and system-services modules

pub mod net;
pub mod net_ip;
pub mod net_tcp;
pub mod net_url;

// libuv modules
pub mod uv;
pub mod uv_ll;
pub mod uv_iotask;
pub mod uv_global_loop;


// Utility modules

pub mod c_vec;
pub mod timer;
pub mod cell;

// Concurrency

pub mod sync;
pub mod arc;
pub mod comm;
pub mod future;
pub mod task_pool;
pub mod flatpipes;

// Collections

pub mod bitv;
pub mod deque;
pub mod fun_treemap;
pub mod list;
pub mod map;
pub mod priority_queue;
pub mod rope;
pub mod smallintmap;
pub mod sort;
pub mod treemap;

// And ... other stuff

pub mod ebml;
pub mod dbg;
pub mod getopts;
pub mod json;
pub mod sha1;
pub mod md4;
pub mod tempfile;
pub mod term;
pub mod time;
pub mod prettyprint;
pub mod arena;
pub mod par;
pub mod cmp;
pub mod base64;
pub mod rl;
pub mod workcache;

#[cfg(unicode)]
mod unicode;


// Compiler support modules

pub mod test;
pub mod serialize;

// A curious inner-module that's not exported that contains the binding
// 'std' so that macro-expanded references to std::serialize and such
// can be resolved within libcore.
#[doc(hidden)] // FIXME #3538
mod std {
    pub use serialize;
}

// Local Variables:
// mode: rust;
// fill-column: 78;
// indent-tabs-mode: nil
// c-basic-offset: 4
// buffer-file-coding-system: utf-8-unix
// End: