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}