ferrox_security/
public_id.rs1use uuid::Uuid;
2
3pub struct PublicId;
5
6impl PublicId {
7 pub fn mask_uuid(prefix: &str, id: Uuid) -> String {
10 let hex = id.simple().to_string();
11 format!("{}_{}", prefix, hex)
12 }
13
14 pub fn unmask_uuid(prefix: &str, public_id: &str) -> Option<Uuid> {
17 let expected_prefix = format!("{}_", prefix);
18 if public_id.starts_with(&expected_prefix) {
19 let hex = &public_id[expected_prefix.len()..];
20 Uuid::parse_str(hex).ok()
21 } else {
22 None
23 }
24 }
25}