/*! The Rust core library. The Rust core library provides runtime features required by the language, including the task scheduler and memory allocators, as well as library support for Rust built-in types, platform abstractions, and other commonly used features. `core` includes modules corresponding to each of the integer types, each of the floating point types, the `bool` type, tuples, characters, strings, vectors (`vec`), shared boxes (`box`), and unsafe and borrowed pointers (`ptr`). Additionally, `core` provides task management and creation (`task`), communication primitives (`comm` and `pipes`), an efficient vector builder (`dvec`), platform abstractions (`os` and `path`), basic I/O abstractions (`io`), common traits (`cmp`, `num`, `to_str`), and complete bindings to the C standard library (`libc`). `core` is linked to all crates by default and its contents imported. Implicitly, all crates behave as if they included the following prologue: extern mod core; use core::*; */ #[link(name = "core", vers = "0.4", uuid = "c70c24a7-5551-4f73-8e37-380b11d80be8", url = "https://github.com/mozilla/rust/tree/master/src/libcore")]; #[comment = "The Rust core library"]; #[license = "MIT"]; #[crate_type = "lib"]; // Don't link to core. We are core. #[no_core]; #[legacy_modes]; #[legacy_exports]; #[warn(vecs_implicitly_copyable)]; #[deny(non_camel_case_types)]; export int, i8, i16, i32, i64; export uint, u8, u16, u32, u64; export float, f32, f64; export box, char, str, ptr, vec, at_vec, bool; export either, option, result, iter; export gc, io, libc, os, run, rand, sys, cast, logging; export comm, task, future, pipes; export extfmt; // The test harness links against core, so don't include runtime in tests. // FIXME (#2861): Uncomment this after snapshot gets updated. //#[cfg(notest)] export rt; export tuple; export to_str, to_bytes; export from_str; export util; export dvec, dvec_iter; export dlist, dlist_iter; export send_map; export hash; export cmp; export num; export path; export mutable; export flate; export unit; export uniq; export repr; export cleanup; export reflect; // NDM seems to be necessary for resolve to work export option_iter; // This creates some APIs that I do not want to commit to, but it must be // exported from core in order for uv to remain in std (see #2648). export private; // Built-in-type support modules /// Operations and constants for `int` #[path = "int-template"] mod int { pub use inst::{ pow }; #[path = "int.rs"] mod inst; } /// Operations and constants for `i8` #[path = "int-template"] mod i8 { #[path = "i8.rs"] mod inst; } /// Operations and constants for `i16` #[path = "int-template"] mod i16 { #[path = "i16.rs"] mod inst; } /// Operations and constants for `i32` #[path = "int-template"] mod i32 { #[path = "i32.rs"] mod inst; } /// Operations and constants for `i64` #[path = "int-template"] mod i64 { #[path = "i64.rs"] mod inst; } /// Operations and constants for `uint` #[path = "uint-template"] mod uint { pub use inst::{ div_ceil, div_round, div_floor, iterate, next_power_of_two }; #[path = "uint.rs"] mod inst; } /// Operations and constants for `u8` #[path = "uint-template"] mod u8 { pub use inst::is_ascii; #[path = "u8.rs"] mod inst; } /// Operations and constants for `u16` #[path = "uint-template"] mod u16 { #[path = "u16.rs"] mod inst; } /// Operations and constants for `u32` #[path = "uint-template"] mod u32 { #[path = "u32.rs"] mod inst; } /// Operations and constants for `u64` #[path = "uint-template"] mod u64 { #[path = "u64.rs"] mod inst; } mod box; mod char; mod float; mod f32; mod f64; #[legacy_exports] mod str; #[legacy_exports] mod ptr; #[legacy_exports] mod vec; mod at_vec; #[legacy_exports] mod bool; #[legacy_exports] mod tuple; #[legacy_exports] mod unit; #[legacy_exports] mod uniq; // Ubiquitous-utility-type modules #[cfg(notest)] mod ops; mod cmp; mod num; #[legacy_exports] mod hash; #[legacy_exports] mod either; #[legacy_exports] mod iter; #[legacy_exports] mod logging; #[legacy_exports] mod option; #[path="iter-trait"] mod option_iter { #[legacy_exports]; #[path = "option.rs"] #[legacy_exports] mod inst; } #[legacy_exports] mod result; #[legacy_exports] mod to_str; #[legacy_exports] mod to_bytes; #[legacy_exports] mod from_str; #[legacy_exports] mod util; // Data structure modules #[legacy_exports] mod dvec; #[path="iter-trait"] mod dvec_iter { #[legacy_exports]; #[path = "dvec.rs"] #[legacy_exports] mod inst; } #[legacy_exports] mod dlist; #[path="iter-trait"] mod dlist_iter { #[legacy_exports]; #[path ="dlist.rs"] #[legacy_exports] mod inst; } #[legacy_exports] mod send_map; // Concurrency #[legacy_exports] mod comm; #[legacy_exports] mod task { #[legacy_exports]; #[legacy_exports] mod local_data; #[legacy_exports] mod local_data_priv; #[legacy_exports] mod spawn; #[legacy_exports] mod rt; } #[legacy_exports] mod future; #[legacy_exports] mod pipes; // Runtime and language-primitive support #[legacy_exports] mod gc; #[legacy_exports] mod io; mod libc; mod os; mod path; mod rand; mod run; mod sys; mod cast; mod mutable; mod flate; mod repr; mod cleanup; mod reflect; // Modules supporting compiler-generated code // Exported but not part of the public interface #[legacy_exports] mod extfmt; // The test harness links against core, so don't include runtime in tests. #[cfg(notest)] #[legacy_exports] mod rt; // For internal use, not exported mod unicode; mod private; mod cmath; mod stackwalk; // Local Variables: // mode: rust; // fill-column: 78; // indent-tabs-mode: nil // c-basic-offset: 4 // buffer-file-coding-system: utf-8-unix // End: