rustauth_plugins/multi_session/
options.rs1#[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}