pub fn typed<S, T>(storage: &mut S) -> TypedStorage<'_, S, T> where
    S: Storage,
    T: Serialize + DeserializeOwned