rust/src/libcore/core.rs

75 lines
2.0 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;
import option_iter::extensions;
import ptr::extensions;
import rand::extensions;
import result::extensions;
import int::extensions::*;
import i8::extensions::*;
import i16::extensions::*;
import i32::extensions::*;
import i64::extensions::*;
import uint::extensions::*;
import u8::extensions::*;
import u16::extensions::*;
import u32::extensions::*;
import u64::extensions::*;
import float::extensions::*;
import f32::extensions::*;
import f64::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;
// The following exports are the extension impls for numeric types
export num;
// 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";
}