family.rs 806 B

1234567891011121314151617181920212223242526
  1. //! Provide a memoized wrapper around collections for efficient updates.
  2. //! --------------------------------------------------------------------
  3. //!
  4. use crate::{AtomValue, FamilyKey, Readable, RecoilItem};
  5. #[allow(non_camel_case_types)]
  6. pub struct atom_family<K: FamilyKey, V: AtomValue>(pub fn(&mut AtomFamilyBuilder<K, V>));
  7. pub type AtomFamily<K, V> = atom_family<K, V>;
  8. // impl<K: FamilyKey, V: AtomValue> Readable for &'static AtomFamily<K, V> {
  9. // fn load(&self) -> RecoilItem {
  10. // RecoilItem::Atom(*self as *const _ as _)
  11. // }
  12. // }
  13. pub struct AtomFamilyBuilder<K, V> {
  14. _never: std::marker::PhantomData<(K, V)>,
  15. }
  16. impl<K: FamilyKey, V: AtomValue> atom_family<K, V> {
  17. fn select(&'static self, key: &K) -> FamilySelected {
  18. todo!()
  19. }
  20. }
  21. struct FamilySelected {}