std: Convert statics to constants
This commit repurposes most statics as constants in the standard library itself, with the exception of TLS keys which precisely have their own memory location as an implementation detail. This commit also rewrites the bitflags syntax to use `const` instead of `static`. All invocations will need to replace the word `static` with `const` when declaring flags. Due to the modification of the `bitflags!` syntax, this is a: [breaking-change]
This commit is contained in:
parent
d9874bfb40
commit
ab5935c88d
@ -24,12 +24,12 @@
|
||||
/// ```{.rust}
|
||||
/// bitflags! {
|
||||
/// flags Flags: u32 {
|
||||
/// static FLAG_A = 0x00000001,
|
||||
/// static FLAG_B = 0x00000010,
|
||||
/// static FLAG_C = 0x00000100,
|
||||
/// static FLAG_ABC = FLAG_A.bits
|
||||
/// | FLAG_B.bits
|
||||
/// | FLAG_C.bits,
|
||||
/// const FLAG_A = 0x00000001,
|
||||
/// const FLAG_B = 0x00000010,
|
||||
/// const FLAG_C = 0x00000100,
|
||||
/// const FLAG_ABC = FLAG_A.bits
|
||||
/// | FLAG_B.bits
|
||||
/// | FLAG_C.bits,
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
@ -50,8 +50,8 @@
|
||||
///
|
||||
/// bitflags! {
|
||||
/// flags Flags: u32 {
|
||||
/// static FLAG_A = 0x00000001,
|
||||
/// static FLAG_B = 0x00000010,
|
||||
/// const FLAG_A = 0x00000001,
|
||||
/// const FLAG_B = 0x00000010,
|
||||
/// }
|
||||
/// }
|
||||
///
|
||||
@ -115,7 +115,7 @@
|
||||
#[macro_export]
|
||||
macro_rules! bitflags {
|
||||
($(#[$attr:meta])* flags $BitFlags:ident: $T:ty {
|
||||
$($(#[$Flag_attr:meta])* static $Flag:ident = $value:expr),+
|
||||
$($(#[$Flag_attr:meta])* const $Flag:ident = $value:expr),+
|
||||
}) => {
|
||||
#[deriving(PartialEq, Eq, Clone, PartialOrd, Ord, Hash)]
|
||||
$(#[$attr])*
|
||||
@ -123,7 +123,7 @@ macro_rules! bitflags {
|
||||
bits: $T,
|
||||
}
|
||||
|
||||
$($(#[$Flag_attr])* pub static $Flag: $BitFlags = $BitFlags { bits: $value };)+
|
||||
$($(#[$Flag_attr])* pub const $Flag: $BitFlags = $BitFlags { bits: $value };)+
|
||||
|
||||
impl $BitFlags {
|
||||
/// Returns an empty set of flags.
|
||||
@ -235,12 +235,12 @@ macro_rules! bitflags {
|
||||
}
|
||||
};
|
||||
($(#[$attr:meta])* flags $BitFlags:ident: $T:ty {
|
||||
$($(#[$Flag_attr:meta])* static $Flag:ident = $value:expr),+,
|
||||
$($(#[$Flag_attr:meta])* const $Flag:ident = $value:expr),+,
|
||||
}) => {
|
||||
bitflags! {
|
||||
$(#[$attr])*
|
||||
flags $BitFlags: $T {
|
||||
$($(#[$Flag_attr])* static $Flag = $value),+
|
||||
$($(#[$Flag_attr])* const $Flag = $value),+
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -259,14 +259,14 @@ mod tests {
|
||||
#[doc = "> "]
|
||||
#[doc = "> - Richard Feynman"]
|
||||
flags Flags: u32 {
|
||||
static FlagA = 0x00000001,
|
||||
const FlagA = 0x00000001,
|
||||
#[doc = "<pcwalton> macros are way better at generating code than trans is"]
|
||||
static FlagB = 0x00000010,
|
||||
static FlagC = 0x00000100,
|
||||
const FlagB = 0x00000010,
|
||||
const FlagC = 0x00000100,
|
||||
#[doc = "* cmr bed"]
|
||||
#[doc = "* strcat table"]
|
||||
#[doc = "<strcat> wait what?"]
|
||||
static FlagABC = FlagA.bits
|
||||
const FlagABC = FlagA.bits
|
||||
| FlagB.bits
|
||||
| FlagC.bits,
|
||||
}
|
||||
@ -274,7 +274,7 @@ mod tests {
|
||||
|
||||
bitflags! {
|
||||
flags AnotherSetOfFlags: uint {
|
||||
static AnotherFlag = 1u,
|
||||
const AnotherFlag = 1u,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -41,8 +41,8 @@ use super::table::{
|
||||
SafeHash
|
||||
};
|
||||
|
||||
static INITIAL_LOG2_CAP: uint = 5;
|
||||
pub static INITIAL_CAPACITY: uint = 1 << INITIAL_LOG2_CAP; // 2^5
|
||||
const INITIAL_LOG2_CAP: uint = 5;
|
||||
pub const INITIAL_CAPACITY: uint = 1 << INITIAL_LOG2_CAP; // 2^5
|
||||
|
||||
/// The default behavior of HashMap implements a load factor of 90.9%.
|
||||
/// This behavior is characterized by the following conditions:
|
||||
|
@ -24,7 +24,7 @@ use ptr::{RawPtr, copy_nonoverlapping_memory, zero_memory};
|
||||
use ptr;
|
||||
use rt::heap::{allocate, deallocate};
|
||||
|
||||
static EMPTY_BUCKET: u64 = 0u64;
|
||||
const EMPTY_BUCKET: u64 = 0u64;
|
||||
|
||||
/// The raw hashtable, providing safe-ish access to the unzipped and highly
|
||||
/// optimized arrays of hashes, keys, and values.
|
||||
|
@ -283,7 +283,7 @@ pub mod util;
|
||||
/// The default buffer size for various I/O operations
|
||||
// libuv recommends 64k buffers to maximize throughput
|
||||
// https://groups.google.com/forum/#!topic/libuv/oQO1HJAIDdA
|
||||
static DEFAULT_BUF_SIZE: uint = 1024 * 64;
|
||||
const DEFAULT_BUF_SIZE: uint = 1024 * 64;
|
||||
|
||||
/// A convenient typedef of the return value of any I/O action.
|
||||
pub type IoResult<T> = Result<T, IoError>;
|
||||
@ -1803,93 +1803,93 @@ bitflags! {
|
||||
#[doc = "A set of permissions for a file or directory is represented"]
|
||||
#[doc = "by a set of flags which are or'd together."]
|
||||
flags FilePermission: u32 {
|
||||
static USER_READ = 0o400,
|
||||
static USER_WRITE = 0o200,
|
||||
static USER_EXECUTE = 0o100,
|
||||
static GROUP_READ = 0o040,
|
||||
static GROUP_WRITE = 0o020,
|
||||
static GROUP_EXECUTE = 0o010,
|
||||
static OTHER_READ = 0o004,
|
||||
static OTHER_WRITE = 0o002,
|
||||
static OTHER_EXECUTE = 0o001,
|
||||
const USER_READ = 0o400,
|
||||
const USER_WRITE = 0o200,
|
||||
const USER_EXECUTE = 0o100,
|
||||
const GROUP_READ = 0o040,
|
||||
const GROUP_WRITE = 0o020,
|
||||
const GROUP_EXECUTE = 0o010,
|
||||
const OTHER_READ = 0o004,
|
||||
const OTHER_WRITE = 0o002,
|
||||
const OTHER_EXECUTE = 0o001,
|
||||
|
||||
static USER_RWX = USER_READ.bits | USER_WRITE.bits | USER_EXECUTE.bits,
|
||||
static GROUP_RWX = GROUP_READ.bits | GROUP_WRITE.bits | GROUP_EXECUTE.bits,
|
||||
static OTHER_RWX = OTHER_READ.bits | OTHER_WRITE.bits | OTHER_EXECUTE.bits,
|
||||
const USER_RWX = USER_READ.bits | USER_WRITE.bits | USER_EXECUTE.bits,
|
||||
const GROUP_RWX = GROUP_READ.bits | GROUP_WRITE.bits | GROUP_EXECUTE.bits,
|
||||
const OTHER_RWX = OTHER_READ.bits | OTHER_WRITE.bits | OTHER_EXECUTE.bits,
|
||||
|
||||
#[doc = "Permissions for user owned files, equivalent to 0644 on"]
|
||||
#[doc = "unix-like systems."]
|
||||
static USER_FILE = USER_READ.bits | USER_WRITE.bits | GROUP_READ.bits | OTHER_READ.bits,
|
||||
const USER_FILE = USER_READ.bits | USER_WRITE.bits | GROUP_READ.bits | OTHER_READ.bits,
|
||||
|
||||
#[doc = "Permissions for user owned directories, equivalent to 0755 on"]
|
||||
#[doc = "unix-like systems."]
|
||||
static USER_DIR = USER_RWX.bits | GROUP_READ.bits | GROUP_EXECUTE.bits |
|
||||
const USER_DIR = USER_RWX.bits | GROUP_READ.bits | GROUP_EXECUTE.bits |
|
||||
OTHER_READ.bits | OTHER_EXECUTE.bits,
|
||||
|
||||
#[doc = "Permissions for user owned executables, equivalent to 0755"]
|
||||
#[doc = "on unix-like systems."]
|
||||
static USER_EXEC = USER_DIR.bits,
|
||||
const USER_EXEC = USER_DIR.bits,
|
||||
|
||||
#[doc = "All possible permissions enabled."]
|
||||
static ALL_PERMISSIONS = USER_RWX.bits | GROUP_RWX.bits | OTHER_RWX.bits,
|
||||
const ALL_PERMISSIONS = USER_RWX.bits | GROUP_RWX.bits | OTHER_RWX.bits,
|
||||
|
||||
// Deprecated names
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use USER_READ instead"]
|
||||
static UserRead = USER_READ.bits,
|
||||
const UserRead = USER_READ.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use USER_WRITE instead"]
|
||||
static UserWrite = USER_WRITE.bits,
|
||||
const UserWrite = USER_WRITE.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use USER_EXECUTE instead"]
|
||||
static UserExecute = USER_EXECUTE.bits,
|
||||
const UserExecute = USER_EXECUTE.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use GROUP_READ instead"]
|
||||
static GroupRead = GROUP_READ.bits,
|
||||
const GroupRead = GROUP_READ.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use GROUP_WRITE instead"]
|
||||
static GroupWrite = GROUP_WRITE.bits,
|
||||
const GroupWrite = GROUP_WRITE.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use GROUP_EXECUTE instead"]
|
||||
static GroupExecute = GROUP_EXECUTE.bits,
|
||||
const GroupExecute = GROUP_EXECUTE.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use OTHER_READ instead"]
|
||||
static OtherRead = OTHER_READ.bits,
|
||||
const OtherRead = OTHER_READ.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use OTHER_WRITE instead"]
|
||||
static OtherWrite = OTHER_WRITE.bits,
|
||||
const OtherWrite = OTHER_WRITE.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use OTHER_EXECUTE instead"]
|
||||
static OtherExecute = OTHER_EXECUTE.bits,
|
||||
const OtherExecute = OTHER_EXECUTE.bits,
|
||||
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use USER_RWX instead"]
|
||||
static UserRWX = USER_RWX.bits,
|
||||
const UserRWX = USER_RWX.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use GROUP_RWX instead"]
|
||||
static GroupRWX = GROUP_RWX.bits,
|
||||
const GroupRWX = GROUP_RWX.bits,
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use OTHER_RWX instead"]
|
||||
static OtherRWX = OTHER_RWX.bits,
|
||||
const OtherRWX = OTHER_RWX.bits,
|
||||
|
||||
#[doc = "Deprecated: use `USER_FILE` instead."]
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use USER_FILE instead"]
|
||||
static UserFile = USER_FILE.bits,
|
||||
const UserFile = USER_FILE.bits,
|
||||
|
||||
#[doc = "Deprecated: use `USER_DIR` instead."]
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use USER_DIR instead"]
|
||||
static UserDir = USER_DIR.bits,
|
||||
const UserDir = USER_DIR.bits,
|
||||
#[doc = "Deprecated: use `USER_EXEC` instead."]
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use USER_EXEC instead"]
|
||||
static UserExec = USER_EXEC.bits,
|
||||
const UserExec = USER_EXEC.bits,
|
||||
|
||||
#[doc = "Deprecated: use `ALL_PERMISSIONS` instead"]
|
||||
#[allow(non_uppercase_statics)]
|
||||
#[deprecated = "use ALL_PERMISSIONS instead"]
|
||||
static AllPermissions = ALL_PERMISSIONS.bits,
|
||||
const AllPermissions = ALL_PERMISSIONS.bits,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,16 +32,16 @@ use std::hash::sip::SipState;
|
||||
|
||||
/// Signal a process to exit, without forcibly killing it. Corresponds to
|
||||
/// SIGTERM on unix platforms.
|
||||
#[cfg(windows)] pub static PleaseExitSignal: int = 15;
|
||||
#[cfg(windows)] pub const PleaseExitSignal: int = 15;
|
||||
/// Signal a process to exit immediately, forcibly killing it. Corresponds to
|
||||
/// SIGKILL on unix platforms.
|
||||
#[cfg(windows)] pub static MustDieSignal: int = 9;
|
||||
#[cfg(windows)] pub const MustDieSignal: int = 9;
|
||||
/// Signal a process to exit, without forcibly killing it. Corresponds to
|
||||
/// SIGTERM on unix platforms.
|
||||
#[cfg(not(windows))] pub static PleaseExitSignal: int = libc::SIGTERM as int;
|
||||
#[cfg(not(windows))] pub const PleaseExitSignal: int = libc::SIGTERM as int;
|
||||
/// Signal a process to exit immediately, forcibly killing it. Corresponds to
|
||||
/// SIGKILL on unix platforms.
|
||||
#[cfg(not(windows))] pub static MustDieSignal: int = libc::SIGKILL as int;
|
||||
#[cfg(not(windows))] pub const MustDieSignal: int = libc::SIGKILL as int;
|
||||
|
||||
/// Representation of a running or exited child process.
|
||||
///
|
||||
|
106
src/libstd/os.rs
106
src/libstd/os.rs
@ -66,8 +66,8 @@ pub fn num_cpus() -> uint {
|
||||
}
|
||||
}
|
||||
|
||||
pub static TMPBUF_SZ : uint = 1000u;
|
||||
static BUF_BYTES : uint = 2048u;
|
||||
pub const TMPBUF_SZ : uint = 1000u;
|
||||
const BUF_BYTES : uint = 2048u;
|
||||
|
||||
/// Returns the current working directory as a Path.
|
||||
///
|
||||
@ -1672,230 +1672,230 @@ impl MemoryMap {
|
||||
pub mod consts {
|
||||
pub use os::arch_consts::ARCH;
|
||||
|
||||
pub static FAMILY: &'static str = "unix";
|
||||
pub const FAMILY: &'static str = "unix";
|
||||
|
||||
/// A string describing the specific operating system in use: in this
|
||||
/// case, `linux`.
|
||||
pub static SYSNAME: &'static str = "linux";
|
||||
pub const SYSNAME: &'static str = "linux";
|
||||
|
||||
/// Specifies the filename prefix used for shared libraries on this
|
||||
/// platform: in this case, `lib`.
|
||||
pub static DLL_PREFIX: &'static str = "lib";
|
||||
pub const DLL_PREFIX: &'static str = "lib";
|
||||
|
||||
/// Specifies the filename suffix used for shared libraries on this
|
||||
/// platform: in this case, `.so`.
|
||||
pub static DLL_SUFFIX: &'static str = ".so";
|
||||
pub const DLL_SUFFIX: &'static str = ".so";
|
||||
|
||||
/// Specifies the file extension used for shared libraries on this
|
||||
/// platform that goes after the dot: in this case, `so`.
|
||||
pub static DLL_EXTENSION: &'static str = "so";
|
||||
pub const DLL_EXTENSION: &'static str = "so";
|
||||
|
||||
/// Specifies the filename suffix used for executable binaries on this
|
||||
/// platform: in this case, the empty string.
|
||||
pub static EXE_SUFFIX: &'static str = "";
|
||||
pub const EXE_SUFFIX: &'static str = "";
|
||||
|
||||
/// Specifies the file extension, if any, used for executable binaries
|
||||
/// on this platform: in this case, the empty string.
|
||||
pub static EXE_EXTENSION: &'static str = "";
|
||||
pub const EXE_EXTENSION: &'static str = "";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
pub mod consts {
|
||||
pub use os::arch_consts::ARCH;
|
||||
|
||||
pub static FAMILY: &'static str = "unix";
|
||||
pub const FAMILY: &'static str = "unix";
|
||||
|
||||
/// A string describing the specific operating system in use: in this
|
||||
/// case, `macos`.
|
||||
pub static SYSNAME: &'static str = "macos";
|
||||
pub const SYSNAME: &'static str = "macos";
|
||||
|
||||
/// Specifies the filename prefix used for shared libraries on this
|
||||
/// platform: in this case, `lib`.
|
||||
pub static DLL_PREFIX: &'static str = "lib";
|
||||
pub const DLL_PREFIX: &'static str = "lib";
|
||||
|
||||
/// Specifies the filename suffix used for shared libraries on this
|
||||
/// platform: in this case, `.dylib`.
|
||||
pub static DLL_SUFFIX: &'static str = ".dylib";
|
||||
pub const DLL_SUFFIX: &'static str = ".dylib";
|
||||
|
||||
/// Specifies the file extension used for shared libraries on this
|
||||
/// platform that goes after the dot: in this case, `dylib`.
|
||||
pub static DLL_EXTENSION: &'static str = "dylib";
|
||||
pub const DLL_EXTENSION: &'static str = "dylib";
|
||||
|
||||
/// Specifies the filename suffix used for executable binaries on this
|
||||
/// platform: in this case, the empty string.
|
||||
pub static EXE_SUFFIX: &'static str = "";
|
||||
pub const EXE_SUFFIX: &'static str = "";
|
||||
|
||||
/// Specifies the file extension, if any, used for executable binaries
|
||||
/// on this platform: in this case, the empty string.
|
||||
pub static EXE_EXTENSION: &'static str = "";
|
||||
pub const EXE_EXTENSION: &'static str = "";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "ios")]
|
||||
pub mod consts {
|
||||
pub use os::arch_consts::ARCH;
|
||||
|
||||
pub static FAMILY: &'static str = "unix";
|
||||
pub const FAMILY: &'static str = "unix";
|
||||
|
||||
/// A string describing the specific operating system in use: in this
|
||||
/// case, `ios`.
|
||||
pub static SYSNAME: &'static str = "ios";
|
||||
pub const SYSNAME: &'static str = "ios";
|
||||
|
||||
/// Specifies the filename suffix used for executable binaries on this
|
||||
/// platform: in this case, the empty string.
|
||||
pub static EXE_SUFFIX: &'static str = "";
|
||||
pub const EXE_SUFFIX: &'static str = "";
|
||||
|
||||
/// Specifies the file extension, if any, used for executable binaries
|
||||
/// on this platform: in this case, the empty string.
|
||||
pub static EXE_EXTENSION: &'static str = "";
|
||||
pub const EXE_EXTENSION: &'static str = "";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "freebsd")]
|
||||
pub mod consts {
|
||||
pub use os::arch_consts::ARCH;
|
||||
|
||||
pub static FAMILY: &'static str = "unix";
|
||||
pub const FAMILY: &'static str = "unix";
|
||||
|
||||
/// A string describing the specific operating system in use: in this
|
||||
/// case, `freebsd`.
|
||||
pub static SYSNAME: &'static str = "freebsd";
|
||||
pub const SYSNAME: &'static str = "freebsd";
|
||||
|
||||
/// Specifies the filename prefix used for shared libraries on this
|
||||
/// platform: in this case, `lib`.
|
||||
pub static DLL_PREFIX: &'static str = "lib";
|
||||
pub const DLL_PREFIX: &'static str = "lib";
|
||||
|
||||
/// Specifies the filename suffix used for shared libraries on this
|
||||
/// platform: in this case, `.so`.
|
||||
pub static DLL_SUFFIX: &'static str = ".so";
|
||||
pub const DLL_SUFFIX: &'static str = ".so";
|
||||
|
||||
/// Specifies the file extension used for shared libraries on this
|
||||
/// platform that goes after the dot: in this case, `so`.
|
||||
pub static DLL_EXTENSION: &'static str = "so";
|
||||
pub const DLL_EXTENSION: &'static str = "so";
|
||||
|
||||
/// Specifies the filename suffix used for executable binaries on this
|
||||
/// platform: in this case, the empty string.
|
||||
pub static EXE_SUFFIX: &'static str = "";
|
||||
pub const EXE_SUFFIX: &'static str = "";
|
||||
|
||||
/// Specifies the file extension, if any, used for executable binaries
|
||||
/// on this platform: in this case, the empty string.
|
||||
pub static EXE_EXTENSION: &'static str = "";
|
||||
pub const EXE_EXTENSION: &'static str = "";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "dragonfly")]
|
||||
pub mod consts {
|
||||
pub use os::arch_consts::ARCH;
|
||||
|
||||
pub static FAMILY: &'static str = "unix";
|
||||
pub const FAMILY: &'static str = "unix";
|
||||
|
||||
/// A string describing the specific operating system in use: in this
|
||||
/// case, `dragonfly`.
|
||||
pub static SYSNAME: &'static str = "dragonfly";
|
||||
pub const SYSNAME: &'static str = "dragonfly";
|
||||
|
||||
/// Specifies the filename prefix used for shared libraries on this
|
||||
/// platform: in this case, `lib`.
|
||||
pub static DLL_PREFIX: &'static str = "lib";
|
||||
pub const DLL_PREFIX: &'static str = "lib";
|
||||
|
||||
/// Specifies the filename suffix used for shared libraries on this
|
||||
/// platform: in this case, `.so`.
|
||||
pub static DLL_SUFFIX: &'static str = ".so";
|
||||
pub const DLL_SUFFIX: &'static str = ".so";
|
||||
|
||||
/// Specifies the file extension used for shared libraries on this
|
||||
/// platform that goes after the dot: in this case, `so`.
|
||||
pub static DLL_EXTENSION: &'static str = "so";
|
||||
pub const DLL_EXTENSION: &'static str = "so";
|
||||
|
||||
/// Specifies the filename suffix used for executable binaries on this
|
||||
/// platform: in this case, the empty string.
|
||||
pub static EXE_SUFFIX: &'static str = "";
|
||||
pub const EXE_SUFFIX: &'static str = "";
|
||||
|
||||
/// Specifies the file extension, if any, used for executable binaries
|
||||
/// on this platform: in this case, the empty string.
|
||||
pub static EXE_EXTENSION: &'static str = "";
|
||||
pub const EXE_EXTENSION: &'static str = "";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "android")]
|
||||
pub mod consts {
|
||||
pub use os::arch_consts::ARCH;
|
||||
|
||||
pub static FAMILY: &'static str = "unix";
|
||||
pub const FAMILY: &'static str = "unix";
|
||||
|
||||
/// A string describing the specific operating system in use: in this
|
||||
/// case, `android`.
|
||||
pub static SYSNAME: &'static str = "android";
|
||||
pub const SYSNAME: &'static str = "android";
|
||||
|
||||
/// Specifies the filename prefix used for shared libraries on this
|
||||
/// platform: in this case, `lib`.
|
||||
pub static DLL_PREFIX: &'static str = "lib";
|
||||
pub const DLL_PREFIX: &'static str = "lib";
|
||||
|
||||
/// Specifies the filename suffix used for shared libraries on this
|
||||
/// platform: in this case, `.so`.
|
||||
pub static DLL_SUFFIX: &'static str = ".so";
|
||||
pub const DLL_SUFFIX: &'static str = ".so";
|
||||
|
||||
/// Specifies the file extension used for shared libraries on this
|
||||
/// platform that goes after the dot: in this case, `so`.
|
||||
pub static DLL_EXTENSION: &'static str = "so";
|
||||
pub const DLL_EXTENSION: &'static str = "so";
|
||||
|
||||
/// Specifies the filename suffix used for executable binaries on this
|
||||
/// platform: in this case, the empty string.
|
||||
pub static EXE_SUFFIX: &'static str = "";
|
||||
pub const EXE_SUFFIX: &'static str = "";
|
||||
|
||||
/// Specifies the file extension, if any, used for executable binaries
|
||||
/// on this platform: in this case, the empty string.
|
||||
pub static EXE_EXTENSION: &'static str = "";
|
||||
pub const EXE_EXTENSION: &'static str = "";
|
||||
}
|
||||
|
||||
#[cfg(target_os = "windows")]
|
||||
pub mod consts {
|
||||
pub use os::arch_consts::ARCH;
|
||||
|
||||
pub static FAMILY: &'static str = "windows";
|
||||
pub const FAMILY: &'static str = "windows";
|
||||
|
||||
/// A string describing the specific operating system in use: in this
|
||||
/// case, `windows`.
|
||||
pub static SYSNAME: &'static str = "windows";
|
||||
pub const SYSNAME: &'static str = "windows";
|
||||
|
||||
/// Specifies the filename prefix used for shared libraries on this
|
||||
/// platform: in this case, the empty string.
|
||||
pub static DLL_PREFIX: &'static str = "";
|
||||
pub const DLL_PREFIX: &'static str = "";
|
||||
|
||||
/// Specifies the filename suffix used for shared libraries on this
|
||||
/// platform: in this case, `.dll`.
|
||||
pub static DLL_SUFFIX: &'static str = ".dll";
|
||||
pub const DLL_SUFFIX: &'static str = ".dll";
|
||||
|
||||
/// Specifies the file extension used for shared libraries on this
|
||||
/// platform that goes after the dot: in this case, `dll`.
|
||||
pub static DLL_EXTENSION: &'static str = "dll";
|
||||
pub const DLL_EXTENSION: &'static str = "dll";
|
||||
|
||||
/// Specifies the filename suffix used for executable binaries on this
|
||||
/// platform: in this case, `.exe`.
|
||||
pub static EXE_SUFFIX: &'static str = ".exe";
|
||||
pub const EXE_SUFFIX: &'static str = ".exe";
|
||||
|
||||
/// Specifies the file extension, if any, used for executable binaries
|
||||
/// on this platform: in this case, `exe`.
|
||||
pub static EXE_EXTENSION: &'static str = "exe";
|
||||
pub const EXE_EXTENSION: &'static str = "exe";
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "x86")]
|
||||
mod arch_consts {
|
||||
pub static ARCH: &'static str = "x86";
|
||||
pub const ARCH: &'static str = "x86";
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
mod arch_consts {
|
||||
pub static ARCH: &'static str = "x86_64";
|
||||
pub const ARCH: &'static str = "x86_64";
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "arm")]
|
||||
mod arch_consts {
|
||||
pub static ARCH: &'static str = "arm";
|
||||
pub const ARCH: &'static str = "arm";
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "mips")]
|
||||
mod arch_consts {
|
||||
pub static ARCH: &'static str = "mips";
|
||||
pub const ARCH: &'static str = "mips";
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "mipsel")]
|
||||
mod arch_consts {
|
||||
pub static ARCH: &'static str = "mipsel";
|
||||
pub const ARCH: &'static str = "mipsel";
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
|
@ -42,10 +42,10 @@ pub struct Path {
|
||||
}
|
||||
|
||||
/// The standard path separator character
|
||||
pub static SEP: char = '/';
|
||||
pub const SEP: char = '/';
|
||||
|
||||
/// The standard path separator byte
|
||||
pub static SEP_BYTE: u8 = SEP as u8;
|
||||
pub const SEP_BYTE: u8 = SEP as u8;
|
||||
|
||||
/// Returns whether the given byte is a path separator
|
||||
#[inline]
|
||||
|
@ -958,14 +958,14 @@ pub fn make_non_verbatim(path: &Path) -> Option<Path> {
|
||||
}
|
||||
|
||||
/// The standard path separator character
|
||||
pub static SEP: char = '\\';
|
||||
pub const SEP: char = '\\';
|
||||
/// The standard path separator byte
|
||||
pub static SEP_BYTE: u8 = SEP as u8;
|
||||
pub const SEP_BYTE: u8 = SEP as u8;
|
||||
|
||||
/// The alternative path separator character
|
||||
pub static SEP2: char = '/';
|
||||
pub const SEP2: char = '/';
|
||||
/// The alternative path separator character
|
||||
pub static SEP2_BYTE: u8 = SEP2 as u8;
|
||||
pub const SEP2_BYTE: u8 = SEP2 as u8;
|
||||
|
||||
/// Returns whether the given char is a path separator.
|
||||
/// Allows both the primary separator '\' and the alternative separator '/'.
|
||||
|
@ -20,23 +20,23 @@ use num::{CheckedAdd, CheckedMul};
|
||||
use result::{Result, Ok, Err};
|
||||
|
||||
/// The number of nanoseconds in a microsecond.
|
||||
static NANOS_PER_MICRO: i32 = 1000;
|
||||
const NANOS_PER_MICRO: i32 = 1000;
|
||||
/// The number of nanoseconds in a millisecond.
|
||||
static NANOS_PER_MILLI: i32 = 1000_000;
|
||||
const NANOS_PER_MILLI: i32 = 1000_000;
|
||||
/// The number of nanoseconds in seconds.
|
||||
static NANOS_PER_SEC: i32 = 1_000_000_000;
|
||||
const NANOS_PER_SEC: i32 = 1_000_000_000;
|
||||
/// The number of microseconds per second.
|
||||
static MICROS_PER_SEC: i64 = 1000_000;
|
||||
const MICROS_PER_SEC: i64 = 1000_000;
|
||||
/// The number of milliseconds per second.
|
||||
static MILLIS_PER_SEC: i64 = 1000;
|
||||
const MILLIS_PER_SEC: i64 = 1000;
|
||||
/// The number of seconds in a minute.
|
||||
static SECS_PER_MINUTE: i64 = 60;
|
||||
const SECS_PER_MINUTE: i64 = 60;
|
||||
/// The number of seconds in an hour.
|
||||
static SECS_PER_HOUR: i64 = 3600;
|
||||
const SECS_PER_HOUR: i64 = 3600;
|
||||
/// The number of (non-leap) seconds in days.
|
||||
static SECS_PER_DAY: i64 = 86400;
|
||||
const SECS_PER_DAY: i64 = 86400;
|
||||
/// The number of (non-leap) seconds in a week.
|
||||
static SECS_PER_WEEK: i64 = 604800;
|
||||
const SECS_PER_WEEK: i64 = 604800;
|
||||
|
||||
macro_rules! try_opt(
|
||||
($e:expr) => (match $e { Some(v) => v, None => return None })
|
||||
@ -52,13 +52,13 @@ pub struct Duration {
|
||||
}
|
||||
|
||||
/// The minimum possible `Duration`: `i64::MIN` milliseconds.
|
||||
pub static MIN: Duration = Duration {
|
||||
pub const MIN: Duration = Duration {
|
||||
secs: i64::MIN / MILLIS_PER_SEC - 1,
|
||||
nanos: NANOS_PER_SEC + (i64::MIN % MILLIS_PER_SEC) as i32 * NANOS_PER_MILLI
|
||||
};
|
||||
|
||||
/// The maximum possible `Duration`: `i64::MAX` milliseconds.
|
||||
pub static MAX: Duration = Duration {
|
||||
pub const MAX: Duration = Duration {
|
||||
secs: i64::MAX / MILLIS_PER_SEC,
|
||||
nanos: (i64::MAX % MILLIS_PER_SEC) as i32 * NANOS_PER_MILLI
|
||||
};
|
||||
@ -456,7 +456,7 @@ mod tests {
|
||||
assert_eq!(MIN.num_microseconds(), None);
|
||||
|
||||
// overflow checks
|
||||
static MICROS_PER_DAY: i64 = 86400_000_000;
|
||||
const MICROS_PER_DAY: i64 = 86400_000_000;
|
||||
assert_eq!(Duration::days(i64::MAX / MICROS_PER_DAY).num_microseconds(),
|
||||
Some(i64::MAX / MICROS_PER_DAY * MICROS_PER_DAY));
|
||||
assert_eq!(Duration::days(i64::MIN / MICROS_PER_DAY).num_microseconds(),
|
||||
@ -477,7 +477,7 @@ mod tests {
|
||||
assert_eq!(MIN.num_nanoseconds(), None);
|
||||
|
||||
// overflow checks
|
||||
static NANOS_PER_DAY: i64 = 86400_000_000_000;
|
||||
const NANOS_PER_DAY: i64 = 86400_000_000_000;
|
||||
assert_eq!(Duration::days(i64::MAX / NANOS_PER_DAY).num_nanoseconds(),
|
||||
Some(i64::MAX / NANOS_PER_DAY * NANOS_PER_DAY));
|
||||
assert_eq!(Duration::days(i64::MIN / NANOS_PER_DAY).num_nanoseconds(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user