1use std::collections::hash_map::DefaultHasher;
2use std::hash::{Hash, Hasher};
3use std::sync::atomic::{AtomicUsize, Ordering};
4
5pub struct Utils;
6
7impl Utils {
8 pub fn use_random_id() -> String {
9 let mut hasher = DefaultHasher::new();
10
11 static COUNTER: AtomicUsize = AtomicUsize::new(1);
12 let counter = COUNTER.fetch_add(1, Ordering::SeqCst);
13 counter.hash(&mut hasher);
14
15 format!("_gen_id_{}", hasher.finish())
16 }
17
18 pub fn use_random_transition_name() -> String {
19 let random_id = Utils::use_random_id();
20 format!("view-transition-name: {random_id}")
21 }
22}