io.taig.taigless.mailbox.Mailbox.scala Maven / Gradle / Ivy
package io.taig.taigless.mailbox
import cats.Applicative
import io.taig.taigless.mailbox.Mailbox.{Address, Message}
abstract class Mailbox[F[_]] {
def send(recipient: Address, message: Message): F[Unit]
}
object Mailbox {
final case class Address(email: String, name: Option[String])
final case class Message(subject: String, content: String)
def noop[F[_]](implicit F: Applicative[F]): Mailbox[F] = new Mailbox[F] {
override def send(recipient: Address, message: Message): F[Unit] = F.unit
}
}