#[link(name = "core", vers = "0.3", 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"]; /*! * The Rust core library provides functionality that is closely tied to the * Rust built-in types and runtime services, or that is used in nearly every * non-trivial program. * * `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 pointers (`ptr`). * Additionally, `core` provides very commonly used built-in types and * operations, concurrency primitives, platform abstractions, I/O, and * complete bindings to the C standard library. * * `core` is linked by default to all crates and the contents imported. * Implicitly, all crates behave as if they included the following prologue: * * use core; * import core::*; * * This behavior can be disabled with the `#[no_core]` crate attribute. */ // Don't link to core. We are core. #[no_core]; #[allow(vecs_implicitly_copyable)]; 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 libc, os, io, run, rand, sys, unsafe, 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 util; export dvec, dvec_iter; export dlist, dlist_iter; export send_map; export hash; export cmp; export num; export path; export managed; export flate; export unit; export uniq; // 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 priv; // Built-in-type support modules /// Operations and constants for `int` #[warn(non_camel_case_types)] #[path = "int-template"] mod int { import inst::{ hash, pow }; export hash, pow; #[path = "int.rs"] mod inst; } /// Operations and constants for `i8` #[warn(non_camel_case_types)] #[path = "int-template"] mod i8 { #[path = "i8.rs"] mod inst; } /// Operations and constants for `i16` #[warn(non_camel_case_types)] #[path = "int-template"] mod i16 { #[path = "i16.rs"] mod inst; } /// Operations and constants for `i32` #[warn(non_camel_case_types)] #[path = "int-template"] mod i32 { #[path = "i32.rs"] mod inst; } /// Operations and constants for `i64` #[warn(non_camel_case_types)] #[path = "int-template"] mod i64 { #[path = "i64.rs"] mod inst; } /// Operations and constants for `uint` #[warn(non_camel_case_types)] #[path = "uint-template"] mod uint { import inst::{ div_ceil, div_round, div_floor, hash, iterate, next_power_of_two }; export div_ceil, div_round, div_floor, hash, iterate, next_power_of_two; #[path = "uint.rs"] mod inst; } /// Operations and constants for `u8` #[warn(non_camel_case_types)] #[path = "uint-template"] mod u8 { import inst::is_ascii; export is_ascii; #[path = "u8.rs"] mod inst; } /// Operations and constants for `u16` #[warn(non_camel_case_types)] #[path = "uint-template"] mod u16 { #[path = "u16.rs"] mod inst; } /// Operations and constants for `u32` #[warn(non_camel_case_types)] #[path = "uint-template"] mod u32 { #[path = "u32.rs"] mod inst; } /// Operations and constants for `u64` #[warn(non_camel_case_types)] #[path = "uint-template"] mod u64 { #[path = "u64.rs"] mod inst; } #[warn(non_camel_case_types)] mod box; #[warn(non_camel_case_types)] mod char; #[warn(non_camel_case_types)] mod float; #[warn(non_camel_case_types)] mod f32; #[warn(non_camel_case_types)] mod f64; #[warn(non_camel_case_types)] mod str; #[warn(non_camel_case_types)] mod ptr; #[warn(non_camel_case_types)] mod vec; #[warn(non_camel_case_types)] mod at_vec; #[warn(non_camel_case_types)] mod bool; #[warn(non_camel_case_types)] mod tuple; #[warn(non_camel_case_types)] mod unit; #[warn(non_camel_case_types)] mod uniq; // Ubiquitous-utility-type modules #[cfg(notest)] mod ops; #[warn(non_camel_case_types)] mod cmp; #[warn(non_camel_case_types)] mod num; #[warn(non_camel_case_types)] mod hash; #[warn(non_camel_case_types)] mod either; #[warn(non_camel_case_types)] mod iter; #[warn(non_camel_case_types)] mod logging; mod option; #[path="iter-trait"] mod option_iter { #[path = "option.rs"] mod inst; } mod result; #[warn(non_camel_case_types)] mod to_str; #[warn(non_camel_case_types)] mod to_bytes; #[warn(non_camel_case_types)] mod util; // Data structure modules #[warn(non_camel_case_types)] mod dvec; #[path="iter-trait"] #[warn(non_camel_case_types)] mod dvec_iter { #[path = "dvec.rs"] mod inst; } #[warn(non_camel_case_types)] mod dlist; #[path="iter-trait"] #[warn(non_camel_case_types)] mod dlist_iter { #[path ="dlist.rs"] mod inst; } #[warn(non_camel_case_types)] mod send_map; // Concurrency #[warn(non_camel_case_types)] mod comm; #[warn(non_camel_case_types)] mod task; //#[warn(non_camel_ase_types)] pipec code continues to trip this warning mod future; #[warn(non_camel_case_types)] mod pipes; // Runtime and language-primitive support #[warn(non_camel_case_types)] mod io; mod libc; #[warn(non_camel_case_types)] mod os; #[warn(non_camel_case_types)] mod path; #[warn(non_camel_case_types)] mod rand; #[warn(non_camel_case_types)] mod run; #[warn(non_camel_case_types)] mod sys; #[warn(non_camel_case_types)] mod unsafe; mod managed; mod flate; // Modules supporting compiler-generated code // Exported but not part of the public interface mod extfmt; // The test harness links against core, so don't include runtime in tests. #[cfg(notest)] mod rt; // For internal use, not exported #[warn(non_camel_case_types)] mod unicode; #[warn(non_camel_case_types)] mod priv; #[warn(non_camel_case_types)] mod cmath; #[warn(non_camel_case_types)] 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: