"""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}"')