rust/src/libcore/core.rs

87 lines
2.6 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;
import tuple::{extensions, tuple_ops, extended_tuple_ops};
import str::{extensions, str_slice, unique_str};
2012-03-17 20:02:45 -05:00
import vec::extensions;
import vec::{const_vector, copyable_vector, immutable_vector};
import vec::{immutable_copyable_vector, iter_trait_extensions, vec_concat};
2012-07-20 17:33:18 -05:00
import iter::{base_iter, extended_iter, copyable_iter, times, timesi};
2012-03-16 19:49:58 -05:00
import option::extensions;
import option_iter::extensions;
import ptr::{extensions, ptr};
import rand::extensions;
import result::extensions;
2012-07-20 17:33:18 -05:00
import int::{num, times, timesi};
import i8::{num, times, timesi};
import i16::{num, times, timesi};
import i32::{num, times, timesi};
import i64::{num, times, timesi};
import uint::{num, times, timesi};
import u8::{num, times, timesi};
import u16::{num, times, timesi};
import u32::{num, times, timesi};
import u64::{num, times, timesi};
import float::num;
import f32::num;
import f64::num;
import num::num;
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
2012-07-20 17:33:18 -05:00
export num, times, timesi;
// The following exports are the common traits
export str_slice, unique_str;
export const_vector, copyable_vector, immutable_vector;
export immutable_copyable_vector, iter_trait_extensions, vec_concat;
export base_iter, copyable_iter, extended_iter;
export tuple_ops, extended_tuple_ops;
export ptr;
// 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
/// The error log level
const error : u32 = 0_u32;
/// The warning log level
const warn : u32 = 1_u32;
/// The info log level
const info : u32 = 2_u32;
/// 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-07-11 11:09:08 -05:00
use std(vers = "0.3");
2012-01-17 18:45:22 -06:00
import std::test;
}
/**
* 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";
}