234 lines
4.6 KiB
Plaintext
234 lines
4.6 KiB
Plaintext
#[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];
|
|
|
|
#[warn(no_vecs_not_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 arc, 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 dvec, dvec_iter;
|
|
export dlist, dlist_iter;
|
|
export hash;
|
|
export cmp;
|
|
export num;
|
|
|
|
// NDM seems to be necessary for resolve to work
|
|
export option_iter;
|
|
|
|
// FIXME (#2648): This creates some APIs that I do not want to commit
|
|
// to. It is currently exported for the uv code in std, but when that
|
|
// code moves into core this should become unexported
|
|
export priv;
|
|
|
|
|
|
// Built-in-type support modules
|
|
|
|
/// Operations and constants for `int`
|
|
#[path = "int-template"]
|
|
mod int {
|
|
import inst::{ hash, pow };
|
|
export hash, 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 {
|
|
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`
|
|
#[path = "uint-template"]
|
|
mod u8 {
|
|
import inst::is_ascii;
|
|
export 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;
|
|
mod str;
|
|
mod ptr;
|
|
mod vec;
|
|
mod at_vec;
|
|
mod bool;
|
|
mod tuple;
|
|
|
|
// Ubiquitous-utility-type modules
|
|
|
|
mod cmp;
|
|
mod num;
|
|
mod hash;
|
|
mod either;
|
|
mod iter;
|
|
mod logging;
|
|
mod option;
|
|
#[path="iter-trait"]
|
|
mod option_iter {
|
|
#[path = "option.rs"]
|
|
mod inst;
|
|
}
|
|
mod result;
|
|
mod to_str;
|
|
mod to_bytes;
|
|
mod dvec;
|
|
#[path="iter-trait"]
|
|
mod dvec_iter {
|
|
#[path = "dvec.rs"]
|
|
mod inst;
|
|
}
|
|
mod dlist;
|
|
#[path="iter-trait"]
|
|
mod dlist_iter {
|
|
#[path ="dlist.rs"]
|
|
mod inst;
|
|
}
|
|
|
|
// Concurrency
|
|
mod arc;
|
|
mod comm;
|
|
mod task;
|
|
mod future;
|
|
mod pipes;
|
|
|
|
// Runtime and language-primitive support
|
|
|
|
mod io;
|
|
mod libc;
|
|
mod os;
|
|
mod path;
|
|
mod rand;
|
|
mod run;
|
|
mod sys;
|
|
mod unsafe;
|
|
|
|
|
|
// 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
|
|
|
|
mod unicode;
|
|
mod priv;
|
|
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:
|