Skip to main content

lockbook_server_lib/
utils.rs

1use crate::ServerError;
2use lb_rs::model::account::MAX_USERNAME_LENGTH;
3use lb_rs::model::api::{GetBuildInfoError, GetBuildInfoResponse};
4use shadow_rs::shadow;
5
6shadow!(build_info);
7
8pub fn username_is_valid(username: &str) -> bool {
9    !username.is_empty()
10        && username.len() <= MAX_USERNAME_LENGTH
11        && username.to_lowercase().chars().all(|c| {
12            c.is_ascii_lowercase()
13                || c.is_ascii_digit()
14                || c == '-'
15                || c == '_'
16                || c == '.'
17                || c == '@'
18        })
19}
20
21pub fn get_build_info() -> Result<GetBuildInfoResponse, ServerError<GetBuildInfoError>> {
22    Ok(GetBuildInfoResponse {
23        build_version: env!("CARGO_PKG_VERSION").to_string(),
24        git_commit_hash: build_info::COMMIT_HASH.to_string(),
25    })
26}