use std::hash::Hash;
use serde::{Deserialize, Serialize};
pub trait Key: Hash + Eq + PartialEq + Clone + 'static {}
impl<T: Hash + Eq + PartialEq + Clone + 'static> Key for T {}
pub trait MaybeKey: Clone + 'static {}
impl<T: Clone + 'static> MaybeKey for T {}
#[derive(Clone, Debug, Hash, PartialEq, Eq, Serialize, Deserialize)]
pub struct NoKey;