Sha256: 8fb83eb04ab4ed9473b7249759464f9f6d3ef6a67be2fecdf56b09c9734a0e5f

Contents?: true

Size: 1.41 KB

Versions: 38

Compression:

Stored size: 1.41 KB

Contents

use crate::time::SystemTime;

/// A value for specifying a time.
#[derive(Debug)]
#[allow(clippy::module_name_repetitions)]
pub enum SystemTimeSpec {
    /// A value which always represents the current time, in symbolic form, so
    /// that even as time elapses, it continues to represent the current time.
    SymbolicNow,

    /// An absolute time value.
    Absolute(SystemTime),
}

impl SystemTimeSpec {
    /// Constructs a new instance of `Self` from the given
    /// [`fs_set_times::SystemTimeSpec`].
    // TODO: Make this a `const fn` once `SystemTime::from_std` is a `const fn`.
    #[inline]
    pub fn from_std(std: fs_set_times::SystemTimeSpec) -> Self {
        match std {
            fs_set_times::SystemTimeSpec::SymbolicNow => Self::SymbolicNow,
            fs_set_times::SystemTimeSpec::Absolute(time) => {
                Self::Absolute(SystemTime::from_std(time))
            }
        }
    }

    /// Constructs a new instance of [`fs_set_times::SystemTimeSpec`] from the
    /// given `Self`.
    #[inline]
    pub const fn into_std(self) -> fs_set_times::SystemTimeSpec {
        match self {
            Self::SymbolicNow => fs_set_times::SystemTimeSpec::SymbolicNow,
            Self::Absolute(time) => fs_set_times::SystemTimeSpec::Absolute(time.into_std()),
        }
    }
}

impl From<SystemTime> for SystemTimeSpec {
    #[inline]
    fn from(time: SystemTime) -> Self {
        Self::Absolute(time)
    }
}

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
wasmtime-14.0.3 ./ext/cargo-vendor/cap-primitives-2.0.0/src/fs/system_time_spec.rs
wasmtime-14.0.1 ./ext/cargo-vendor/cap-primitives-2.0.0/src/fs/system_time_spec.rs
wasmtime-14.0.0 ./ext/cargo-vendor/cap-primitives-2.0.0/src/fs/system_time_spec.rs
wasmtime-13.0.0 ./ext/cargo-vendor/cap-primitives-2.0.0/src/fs/system_time_spec.rs
wasmtime-12.0.1 ./ext/cargo-vendor/cap-primitives-2.0.0/src/fs/system_time_spec.rs
wasmtime-12.0.0 ./ext/cargo-vendor/cap-primitives-2.0.0/src/fs/system_time_spec.rs
wasmtime-11.0.0 ./ext/cargo-vendor/cap-primitives-1.0.15/src/fs/system_time_spec.rs
wasmtime-10.0.1 ./ext/cargo-vendor/cap-primitives-1.0.15/src/fs/system_time_spec.rs
wasmtime-10.0.0 ./ext/cargo-vendor/cap-primitives-1.0.15/src/fs/system_time_spec.rs
wasmtime-9.0.4 ./ext/cargo-vendor/cap-primitives-1.0.15/src/fs/system_time_spec.rs
wasmtime-9.0.1 ./ext/cargo-vendor/cap-primitives-1.0.15/src/fs/system_time_spec.rs
wasmtime-8.0.0 ./ext/cargo-vendor/cap-primitives-1.0.14/src/fs/system_time_spec.rs
wasmtime-7.0.0 ./ext/cargo-vendor/cap-primitives-1.0.9/src/fs/system_time_spec.rs
wasmtime-6.0.1 ./ext/cargo-vendor/cap-primitives-1.0.5/src/fs/system_time_spec.rs
wasmtime-6.0.0 ./ext/cargo-vendor/cap-primitives-1.0.5/src/fs/system_time_spec.rs
wasmtime-5.0.0 ./ext/cargo-vendor/cap-primitives-1.0.4/src/fs/system_time_spec.rs
wasmtime-0.4.1 ./ext/cargo-vendor/cap-primitives-1.0.3/src/fs/system_time_spec.rs
wasmtime-0.4.0 ./ext/cargo-vendor/cap-primitives-1.0.2/src/fs/system_time_spec.rs