fix: use typeid of atoms for their unique ID (#558)

This commit is contained in:
Jon Kelley authored and GitHub committed 2022-09-17 10:50:05 -07:00
1 parent 540e785d8b
commit bf9901a6cd
4 files changed
+38 -11

No files matched your search

+6 -3
View File
@@ -4,7 +4,7 @@ use im_rc::HashMap as ImMap;
pub struct AtomFamilyBuilder;
pub type AtomFamily<K, V> = fn(AtomFamilyBuilder) -> ImMap<K, V>;
impl<K, V> Readable<ImMap<K, V>> for AtomFamily<K, V> {
impl<K, V: 'static> Readable<ImMap<K, V>> for AtomFamily<K, V> {
fn read(&self, _root: AtomRoot) -> Option<ImMap<K, V>> {
todo!()
}
@@ -14,11 +14,14 @@ impl<K, V> Readable<ImMap<K, V>> for AtomFamily<K, V> {
}
fn unique_id(&self) -> AtomId {
*self as *const ()
AtomId {
ptr: *self as *const (),
type_id: std::any::TypeId::of::<V>(),
}
}
}
impl<K, V> Writable<ImMap<K, V>> for AtomFamily<K, V> {
impl<K, V: 'static> Writable<ImMap<K, V>> for AtomFamily<K, V> {
fn write(&self, _root: AtomRoot, _value: ImMap<K, V>) {
todo!()
}