rustauth-plugins 0.2.0

Official RustAuth plugin modules.
Documentation
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub struct MultiSessionOptions {
    pub maximum_sessions: usize,
}

impl Default for MultiSessionOptions {
    fn default() -> Self {
        Self {
            maximum_sessions: 5,
        }
    }
}

impl MultiSessionOptions {
    #[must_use]
    pub fn builder() -> MultiSessionOptionsBuilder {
        MultiSessionOptionsBuilder::default()
    }
}

#[derive(Debug, Clone, Copy, Default)]
pub struct MultiSessionOptionsBuilder {
    maximum_sessions: Option<usize>,
}

impl MultiSessionOptionsBuilder {
    #[must_use]
    pub fn maximum_sessions(mut self, maximum_sessions: usize) -> Self {
        self.maximum_sessions = Some(maximum_sessions);
        self
    }

    #[must_use]
    pub fn build(self) -> MultiSessionOptions {
        let defaults = MultiSessionOptions::default();
        MultiSessionOptions {
            maximum_sessions: self.maximum_sessions.unwrap_or(defaults.maximum_sessions),
        }
    }
}