pub fn create_session_token() -> String {
let mut random = ChaCha8Rng::seed_from_u64(OsRng.next_u64());
let mut u128_pool = [0u8; 16];
random.fill_bytes(&mut u128_pool);
let session_token = u128::from_le_bytes(u128_pool);
return session_token.to_string();
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_create_session_token() {
let token = create_session_token();
let token_filter = token.clone().chars().filter(|&c| matches!(c, '0' ..= '9')).collect::<String>();
assert_eq!(token_filter.len(), token.len());
}
}
warning: `app` (bin “app” test) generated 7 warnings (run `cargo fix –bin “app” –tests` to apply 7 suggestions)
Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
Running unittests src/main.rs (target/debug/deps/app-22ae7a27958c3b49)
running 1 test
test tests::test_create_session_token … ok
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
うーん、渋い