use crate::common::node_version::{NodeEdition, NodeVersion};
use couchbase::error::Error;
use std::ops::Add;
use std::time::Duration;
use tokio::time::{timeout_at, Instant};
pub async fn run_with_std_kv_deadline<Resp, Fut>(
node_version: &NodeVersion,
f: Fut,
) -> Result<Resp, Error>
where
Fut: std::future::Future<Output = Result<Resp, Error>>,
{
let timeout = match node_version.edition {
Some(NodeEdition::Community) => Duration::from_millis(10000),
_ => Duration::from_millis(2500),
};
timeout_at(Instant::now().add(timeout), f).await.unwrap()
}