pub fn singleton<S, T>(storage: &'a mut S, key: &[u8]) -> Singleton<'a, S, T> where
    S: Storage,
    T: Serialize + DeserializeOwned