pubky_homeserver/data_directory/
signup_mode.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
5#[serde(rename_all = "snake_case")]
6pub enum SignupMode {
7 Open,
9 #[default]
11 TokenRequired,
12}
13
14#[cfg(test)]
15mod tests {
16 use super::*;
17
18 #[derive(Default, Serialize, Deserialize)]
19 struct TestToml {
20 #[serde(default)]
21 signup_mode: SignupMode,
22 }
23
24 #[test]
25 fn test_signup_mode_serde() {
26 let test_toml = TestToml::default();
27 assert_eq!(test_toml.signup_mode, SignupMode::TokenRequired);
28
29 let test_toml_str = toml::to_string(&test_toml).unwrap();
30 assert_eq!(test_toml_str, "signup_mode = \"token_required\"\n");
31
32 let test_toml_2: TestToml = toml::from_str(&test_toml_str).unwrap();
33 assert_eq!(test_toml_2.signup_mode, SignupMode::TokenRequired);
34
35 let test_toml_3: TestToml = toml::from_str("\n").unwrap();
36 assert_eq!(test_toml_3.signup_mode, SignupMode::TokenRequired);
37 }
38}