use gax::{
backoff_policy::BackoffPolicy,
retry_policy::RetryPolicy,
retry_throttler::{AdaptiveThrottler, SharedRetryThrottler},
};
use std::sync::{Arc, Mutex};
#[derive(Clone, Debug)]
pub(crate) struct RequestOptions {
pub retry_policy: Arc<dyn RetryPolicy>,
pub backoff_policy: Arc<dyn BackoffPolicy>,
pub retry_throttler: SharedRetryThrottler,
}
impl RequestOptions {
pub(crate) fn new() -> Self {
let retry_policy = Arc::new(crate::retry_policy::default());
let backoff_policy = Arc::new(crate::backoff_policy::default());
let retry_throttler = Arc::new(Mutex::new(AdaptiveThrottler::default()));
Self {
retry_policy,
backoff_policy,
retry_throttler,
}
}
}