Skip to main content

rustauth_plugins/username/
schema.rs

1use rustauth_core::db::{DbField, DbFieldType, TableOptions};
2use rustauth_core::plugin::PluginSchemaContribution;
3
4#[derive(Debug, Clone, Default, PartialEq, Eq)]
5pub struct UsernameSchemaOptions {
6    pub user: TableOptions,
7}
8
9pub fn username_field(options: &UsernameSchemaOptions) -> PluginSchemaContribution {
10    PluginSchemaContribution::field(
11        "user",
12        "username",
13        DbField::new(
14            options
15                .user
16                .field_names
17                .get("username")
18                .cloned()
19                .unwrap_or_else(|| "username".to_owned()),
20            DbFieldType::String,
21        )
22        .optional()
23        .unique(),
24    )
25}
26
27pub fn display_username_field(options: &UsernameSchemaOptions) -> PluginSchemaContribution {
28    PluginSchemaContribution::field(
29        "user",
30        "display_username",
31        DbField::new(
32            options
33                .user
34                .field_names
35                .get("displayUsername")
36                .cloned()
37                .unwrap_or_else(|| "display_username".to_owned()),
38            DbFieldType::String,
39        )
40        .optional(),
41    )
42}