ferriskey 0.6.1

Rust client for Valkey, built for FlowFabric. Forked from glide-core (valkey-glide).
Documentation
use std::{io, time::Duration};

use crate::value::Error;
use futures_util::Future;

pub(crate) async fn timeout<F: Future>(
    duration: Duration,
    future: F,
) -> Result<F::Output, Elapsed> {
    ::tokio::time::timeout(duration, future)
        .await
        .map_err(|_| Elapsed(()))
}

#[derive(Debug)]
pub(crate) struct Elapsed(());

impl From<Elapsed> for Error {
    fn from(_: Elapsed) -> Self {
        io::Error::from(io::ErrorKind::TimedOut).into()
    }
}