diff options
| author | Patrick Walton <pcwalton@mimiga.net> | 2012-09-25 11:44:23 -0700 |
|---|---|---|
| committer | Patrick Walton <pcwalton@mimiga.net> | 2012-09-25 11:44:23 -0700 |
| commit | ac822a52be47579ffa59d5ca3e125680a79545d0 (patch) | |
| tree | 5ef280226f9e0f3dcdf3dbc2c766743f4cbcec35 /src/libcore | |
| parent | dbc00ced3a09a7a8c32d69a89b9e073252cca39d (diff) | |
rustc: Stop using shape code for logging
Diffstat (limited to 'src/libcore')
| -rw-r--r-- | src/libcore/logging.rs | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/src/libcore/logging.rs b/src/libcore/logging.rs index 6086b2edd7e..a9f63b57fa5 100644 --- a/src/libcore/logging.rs +++ b/src/libcore/logging.rs @@ -4,13 +4,16 @@ #[forbid(deprecated_mode)]; #[forbid(deprecated_pattern)]; -export console_on, console_off; +use cast::transmute; + +export console_on, console_off, log_type; #[nolink] extern mod rustrt { #[legacy_exports]; fn rust_log_console_on(); fn rust_log_console_off(); + fn rust_log_str(level: u32, string: *libc::c_char, size: libc::size_t); } /// Turns on logging to stdout globally @@ -27,4 +30,17 @@ fn console_on() { */ fn console_off() { rustrt::rust_log_console_off(); -} \ No newline at end of file +} + +#[cfg(notest)] +#[lang="log_type"] +pub fn log_type<T>(level: u32, object: &T) { + let bytes = do io::with_bytes_writer() |writer| { + repr::write_repr(writer, object); + }; + unsafe { + let len = bytes.len() as libc::size_t; + rustrt::rust_log_str(level, transmute(vec::raw::to_ptr(bytes)), len); + } +} + |
