macroquad/ui/
hash.rs

1#[macro_export]
2#[doc(hidden)]
3macro_rules! hash {
4    ($s:expr) => {{
5        use std::collections::hash_map::DefaultHasher;
6        use std::hash::{Hash, Hasher};
7
8        let id = $s;
9
10        let mut s = DefaultHasher::new();
11        id.hash(&mut s);
12        s.finish()
13    }};
14    () => {{
15        let id = concat!(file!(), line!(), column!());
16        hash!(id)
17    }};
18    ($($s:expr),*) => {{
19        let mut s: u128 = 0;
20        $(s += $crate::hash!($s) as u128;)*
21        $crate::hash!(s)
22    }};
23}