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