use std::time::Duration;
pub const DEFAULT_DURATION_SECS: u64 = 20;
#[derive(Debug, Copy, Clone, PartialEq, Eq)]
pub enum Method {
Get,
Post,
}
impl Default for Method {
fn default() -> Self {
Self::Get
}
}
#[derive(Default)]
pub struct Config {
pub url: String,
pub iterations: Option<usize>,
pub connections: usize,
pub print_response: bool,
pub failed_body: Option<String>,
pub insecure: bool,
pub method: Method,
pub request_body: Option<String>,
pub header: Vec<String>,
pub hide_errors: bool,
pub duration: Option<Duration>,
pub ca_cert: Option<String>,
}
impl Config {
pub fn iterations_and_duration(&self) -> (usize, u64) {
match (self.iterations, self.duration) {
(None, None) => (usize::MAX, DEFAULT_DURATION_SECS * 1_000_000),
(Some(i), None) => (i, u64::MAX),
(None, Some(d)) => (usize::MAX, d.as_micros() as u64),
(Some(i), Some(d)) => (i, d.as_micros() as u64),
}
}
}