"""Adapters module."""

import abc


class EmailSender(metaclass=abc.ABCMeta):

    @abc.abstractmethod
    def send(self, to: str, body: str) -> None:
        ...


class SmtpEmailSender:

    def send(self, to: str, body: str) -> None:
        print(f"Sending an email to {to} over SMTP, body=\"{body}\"")


class EchoEmailSender:

    def send(self, to: str, body: str) -> None:
        print(f"Fake sending an email to {to}, body=\"{body}\"")