atomfamily.rs 657 B

12345678910111213141516171819202122232425
  1. use crate::{AtomId, AtomRoot, Readable, Writable};
  2. use im_rc::HashMap as ImMap;
  3. pub struct AtomFamilyBuilder;
  4. pub struct AtomFamily<K, V>(pub fn(AtomFamilyBuilder) -> ImMap<K, V>);
  5. impl<K, V> Readable<ImMap<K, V>> for &'static AtomFamily<K, V> {
  6. fn read(&self, _root: AtomRoot) -> Option<ImMap<K, V>> {
  7. todo!()
  8. }
  9. fn init(&self) -> ImMap<K, V> {
  10. self.0(AtomFamilyBuilder)
  11. }
  12. fn unique_id(&self) -> AtomId {
  13. *self as *const AtomFamily<K, V> as *const ()
  14. }
  15. }
  16. impl<K, V> Writable<ImMap<K, V>> for &'static AtomFamily<K, V> {
  17. fn write(&self, _root: AtomRoot, _value: ImMap<K, V>) {
  18. todo!()
  19. }
  20. }