leptos_ui/
utils.rs

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}