Function cop::ptr::normalise [−][src]
pub fn normalise<'a, T, Q: ?Sized>(
x: T,
arena: &'a Arena<T>,
set: &mut HashSet<&'a Q>
) -> &'a Q where
T: Deref<Target = Q>,
Q: Eq + Hash,
Return equal pointers for any two equal dereferenceable objects.
use colosseum::unsync::Arena; use hashbrown::HashSet; let s1 = "Hello".to_string(); let s2 = "Hello".to_string(); assert!(!(core::ptr::eq(&*s1, &*s2))); let arena: Arena<String> = Arena::new(); let mut set: HashSet<&str> = HashSet::new(); let p1 = normalise(s1, &arena, &mut set); let p2 = normalise(s2, &arena, &mut set); assert!(core::ptr::eq(p1, p2));