From 219c018894b31fec7059ca89bb1ab0606068aeaf Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Fri, 30 Sep 2016 22:11:46 +0000 Subject: std: Move platform-specific code out of libstd/lib.rs --- src/libstd/lib.rs | 5 +---- src/libstd/sys/mod.rs | 19 +++++++++++++++++++ src/libstd/sys/windows/mod.rs | 6 +++--- 3 files changed, 23 insertions(+), 7 deletions(-) create mode 100644 src/libstd/sys/mod.rs (limited to 'src/libstd') diff --git a/src/libstd/lib.rs b/src/libstd/lib.rs index e470690b7c6..1d6c2403c2f 100644 --- a/src/libstd/lib.rs +++ b/src/libstd/lib.rs @@ -458,10 +458,7 @@ mod memchr; #[macro_use] #[path = "sys/common/mod.rs"] mod sys_common; -#[cfg(unix)] -#[path = "sys/unix/mod.rs"] mod sys; -#[cfg(windows)] -#[path = "sys/windows/mod.rs"] mod sys; +mod sys; pub mod rt; mod panicking; diff --git a/src/libstd/sys/mod.rs b/src/libstd/sys/mod.rs new file mode 100644 index 00000000000..f7e1a0a075a --- /dev/null +++ b/src/libstd/sys/mod.rs @@ -0,0 +1,19 @@ +// Copyright 2016 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +pub use self::imp::*; + +#[cfg(unix)] +#[path = "unix/mod.rs"] +mod imp; + +#[cfg(windows)] +#[path = "windows/mod.rs"] +mod imp; diff --git a/src/libstd/sys/windows/mod.rs b/src/libstd/sys/windows/mod.rs index 9cd6e6ca176..0610a0245ea 100644 --- a/src/libstd/sys/windows/mod.rs +++ b/src/libstd/sys/windows/mod.rs @@ -179,7 +179,7 @@ pub fn truncate_utf16_at_nul<'a>(v: &'a [u16]) -> &'a [u16] { } } -trait IsZero { +pub trait IsZero { fn is_zero(&self) -> bool; } @@ -193,7 +193,7 @@ macro_rules! impl_is_zero { impl_is_zero! { i8 i16 i32 i64 isize u8 u16 u32 u64 usize } -fn cvt(i: I) -> io::Result { +pub fn cvt(i: I) -> io::Result { if i.is_zero() { Err(io::Error::last_os_error()) } else { @@ -201,7 +201,7 @@ fn cvt(i: I) -> io::Result { } } -fn dur2timeout(dur: Duration) -> c::DWORD { +pub fn dur2timeout(dur: Duration) -> c::DWORD { // Note that a duration is a (u64, u32) (seconds, nanoseconds) pair, and the // timeouts in windows APIs are typically u32 milliseconds. To translate, we // have two pieces to take care of: -- cgit 1.4.1-3-g733a5