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