from abc import abstractmethod
from typing import List, Protocol


class Layer(Protocol):
    @abstractmethod
    def get(self, key):
        pass

    @abstractmethod
    def keys(self) -> List[str]:
        pass

    @abstractmethod
    def contains(self, key: str) -> bool:
        pass

    @abstractmethod
    def __repr__(self):
        pass
