grpctestify 1.6.1

gRPC testing utility written in Rust
Documentation
pub trait Clock {
    fn timestamp() -> i64;
    fn rfc3339() -> String;
    fn unix_millis() -> u128;
}

pub struct SystemClock;

impl Clock for SystemClock {
    fn timestamp() -> i64 {
        std::cfg_select! {
            miri => 0,
            _ => chrono::Utc::now().timestamp(),
        }
    }

    fn rfc3339() -> String {
        std::cfg_select! {
            miri => "1970-01-01T00:00:00+00:00".to_string(),
            _ => chrono::Utc::now().to_rfc3339(),
        }
    }

    fn unix_millis() -> u128 {
        std::cfg_select! {
            miri => 0,
            _ => {
                std::time::SystemTime::now()
                    .duration_since(std::time::UNIX_EPOCH)
                    .unwrap_or_default()
                    .as_millis()
            },
        }
    }
}

pub fn now_timestamp() -> i64 {
    SystemClock::timestamp()
}

pub fn now_rfc3339() -> String {
    SystemClock::rfc3339()
}

pub fn now_unix_millis() -> u128 {
    SystemClock::unix_millis()
}

#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Capability {
    ProcessSpawn,
    RealtimeClock,
    IsolatedFsIo,
}

pub const fn supports(_capability: Capability) -> bool {
    std::cfg_select! {
        miri => false,
        _ => true,
    }
}