class_docstr: Cache storage protocol, that should be implemented by the concrete cache storages.
  Used to store cached values for a single `@st.cache_data` decorated function
  serialized as bytes.
  
  CacheStorage instances should be created by `CacheStorageManager.create()` method.
  
  Notes
  -----
  Threading: The methods of this protocol could be called from multiple threads.
  This is a responsibility of the concrete implementation to ensure thread safety
  guarantees.
docstr: Closes the cache storage, it is optional to implement, and should be used
  to close open resources, before we delete the storage instance.
  e.g. close the database connection etc.
docstr_tok: ["Closes","the","cache","storage",",","it","is","optional","to","implement",",","and","should","be","used","to","close","open","resources",",","before","we","delete","the","storage","instance",".","e.g",".","close","the","database","connection","etc","."]
code: def close(self) -> None:
      """Closes the cache storage, it is optional to implement, and should be used
      to close open resources, before we delete the storage instance.
      e.g. close the database connection etc.
      """
      pass
  
imports: from __future__ import annotations
  from abc import abstractmethod
  from dataclasses import dataclass
  from typing_extensions import Literal, Protocol
label_desc: Use image node_id 5 for calling the CacheStorage obj's underlying member method code with example usage: obj.close() without return types