metabase 0.1.1

Ergonomic Rust SDK for Metabase's HTTP API, with async and blocking clients.
Documentation
use std::time::Duration;

use crate::util;

use super::RetryPolicy;

#[derive(Clone)]
pub(crate) struct TimeoutConfig {
    pub(crate) connect: Duration,
    pub(crate) request: Duration,
    pub(crate) read: Duration,
}

impl Default for TimeoutConfig {
    fn default() -> Self {
        Self {
            connect: Duration::from_secs(10),
            request: Duration::from_secs(30),
            read: Duration::from_secs(30),
        }
    }
}

#[derive(Clone)]
pub(crate) struct BodySnippetConfig {
    pub(crate) capture: bool,
    pub(crate) limit: usize,
    pub(crate) redact: bool,
}

impl Default for BodySnippetConfig {
    fn default() -> Self {
        Self {
            capture: true,
            limit: util::DEFAULT_BODY_SNIPPET_LIMIT,
            redact: true,
        }
    }
}

#[derive(Clone, Default)]
pub(crate) struct ClientConfig {
    pub(crate) timeouts: TimeoutConfig,
    pub(crate) body_snippet: BodySnippetConfig,
    pub(crate) retry: RetryPolicy,
}