Skip to main content

rustauth_plugins/multi_session/
options.rs

1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
2pub struct MultiSessionOptions {
3    pub maximum_sessions: usize,
4}
5
6impl Default for MultiSessionOptions {
7    fn default() -> Self {
8        Self {
9            maximum_sessions: 5,
10        }
11    }
12}
13
14impl MultiSessionOptions {
15    #[must_use]
16    pub fn builder() -> MultiSessionOptionsBuilder {
17        MultiSessionOptionsBuilder::default()
18    }
19}
20
21#[derive(Debug, Clone, Copy, Default)]
22pub struct MultiSessionOptionsBuilder {
23    maximum_sessions: Option<usize>,
24}
25
26impl MultiSessionOptionsBuilder {
27    #[must_use]
28    pub fn maximum_sessions(mut self, maximum_sessions: usize) -> Self {
29        self.maximum_sessions = Some(maximum_sessions);
30        self
31    }
32
33    #[must_use]
34    pub fn build(self) -> MultiSessionOptions {
35        let defaults = MultiSessionOptions::default();
36        MultiSessionOptions {
37            maximum_sessions: self.maximum_sessions.unwrap_or(defaults.maximum_sessions),
38        }
39    }
40}