from dataclasses import dataclass
from typing import Any, Iterable
from .base import ValueMixin, CallMixin, StorageBackend, DestructuringMixin
from ..digest import Digest
@dataclass(frozen=True)
[docs]
class VoidBackend(StorageBackend):
"""
A concrete implementation of Storage that does not store anything.
"""
[docs]
def put(self, value: Any, key: Digest) -> Digest:
return key
[docs]
def get(self, key: Digest) -> Any:
raise KeyError(key)
[docs]
def list(self) -> Iterable[Digest]:
return ()
[docs]
def _evict(self, key: Digest) -> None:
pass
[docs]
def _contains(self, key: Digest) -> bool:
return False
[docs]
class ValueVoid(ValueMixin, DestructuringMixin, VoidBackend): ...
[docs]
class CallVoid(CallMixin, VoidBackend): ...