Source code for fleche.storage.void

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): ...