rust/src/libcore/core.rs

56 lines
1.5 KiB
Rust
Raw Normal View History

// Top-level, visible-everywhere definitions.
// Export various ubiquitous types, constructors, methods.
2012-02-21 11:23:01 -06:00
import option::{some, none};
import option = option::option;
import path = path::path;
2012-03-16 19:35:38 -05:00
import str::extensions;
2012-03-17 20:02:45 -05:00
import vec::extensions;
2012-03-16 19:49:58 -05:00
import option::extensions;
2012-03-17 20:02:45 -05:00
export path, option, some, none, unreachable;
2012-03-16 19:35:38 -05:00
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;
2012-01-24 02:54:17 -06:00
#[doc = "The error log level"]
const error : u32 = 0_u32;
2012-01-24 02:54:17 -06:00
#[doc = "The warning log level"]
const warn : u32 = 1_u32;
2012-01-24 02:54:17 -06:00
#[doc = "The info log level"]
const info : u32 = 2_u32;
2012-01-24 02:54:17 -06:00
#[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;
2012-01-17 18:45:22 -06:00
}
// Similar to above. Some magic to make core testable.
#[cfg(test)]
mod std {
2012-04-05 19:30:26 -05:00
use std(vers = "0.2");
2012-01-17 18:45:22 -06:00
import std::test;
}
2012-03-06 21:09:32 -06:00
#[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.
2012-03-06 21:09:32 -06:00
"]
fn unreachable() -> ! {
fail "Internal error: entered unreachable code";
}