github_username_regex/lib.rs
1#![forbid(unsafe_code, future_incompatible, rust_2018_idioms)]
2#![deny(missing_debug_implementations, nonstandard_style)]
3#![warn(missing_docs, rustdoc::all, unreachable_pub)]
4
5//! A lightweight Rust crate to check if a GitHub username / handle is valid
6
7use regex::RegexBuilder;
8
9/// check if a GitHub username is valid
10/// # Examples
11/// ```
12/// use github_username_regex::valid;
13/// assert_eq!(valid("monalisa"), true);
14/// ```
15pub fn valid(handle: &str) -> bool {
16 let handle_regex: regex::Regex = RegexBuilder::new(r"^[a-z\d](-?[a-z\d]){0,38}$")
17 .case_insensitive(true)
18 .build()
19 .unwrap();
20 handle_regex.is_match(handle)
21}