apollo-router 2.10.4

A configurable, high-performance routing runtime for Apollo Federation 🚀
Documentation
use schemars::JsonSchema;
use serde::Deserialize;
use serde::Serialize;

// Don't add a default here. Instead, Default should be implemented for
// individual cases of Mode<T>.
#[derive(Debug, Clone, Copy, Deserialize, Serialize, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub(crate) enum Mode {
    Measure,
    Enforce,
}

impl Mode {
    /// Returns true if this config is in measure mode.
    pub(crate) fn is_measure_mode(&self) -> bool {
        matches!(self, Mode::Measure)
    }

    /// Returns true if this config is in enforce mode.
    pub(crate) fn is_enforce_mode(&self) -> bool {
        matches!(self, Mode::Enforce)
    }
}