rust/src/libcore/core.rs
2012-04-05 20:29:42 -07:00

56 lines
1.5 KiB
Rust

// Top-level, visible-everywhere definitions.
// Export various ubiquitous types, constructors, methods.
import option::{some, none};
import option = option::option;
import path = path::path;
import str::extensions;
import vec::extensions;
import option::extensions;
export path, option, some, none, unreachable;
export extensions;
// Export the log levels as global constants. Higher levels mean
// more-verbosity. Error is the bottom level, default logging level is
// warn-and-below.
export error, warn, info, debug;
#[doc = "The error log level"]
const error : u32 = 0_u32;
#[doc = "The warning log level"]
const warn : u32 = 1_u32;
#[doc = "The info log level"]
const info : u32 = 2_u32;
#[doc = "The debug log level"]
const debug : u32 = 3_u32;
// A curious inner-module that's not exported that contains the binding
// 'core' so that macro-expanded references to core::error and such
// can be resolved within libcore.
mod core {
const error : u32 = 0_u32;
const warn : u32 = 1_u32;
const info : u32 = 2_u32;
const debug : u32 = 3_u32;
}
// Similar to above. Some magic to make core testable.
#[cfg(test)]
mod std {
use std(vers = "0.2");
import std::test;
}
#[doc = "
A standard function to use to indicate unreachable code. Because the
function is guaranteed to fail typestate will correctly identify
any code paths following the appearance of this function as unreachable.
"]
fn unreachable() -> ! {
fail "Internal error: entered unreachable code";
}