use commonware_cryptography::PublicKey;
use std::time::SystemTime;
pub(crate) fn earliest(a: Option<SystemTime>, b: SystemTime) -> Option<SystemTime> {
Some(a.map_or(b, |a| a.min(b)))
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum DialStatus {
Now,
After(SystemTime),
Unavailable,
}
#[derive(Clone, Copy, Debug, PartialEq)]
pub enum ReserveResult {
Reserved,
RateLimited,
Unavailable,
}
#[derive(Clone, Debug)]
pub struct Dialable<C: PublicKey> {
pub peers: Vec<C>,
pub next_query_at: Option<SystemTime>,
}
impl<C: PublicKey> Default for Dialable<C> {
fn default() -> Self {
Self {
peers: Vec::new(),
next_query_at: None,
}
}
}