Protocol

object Protocol
class Object
trait Matchable
class Any

Type members

Classlikes

case
class Beverage(description: String)
enum Flavor
enum Size

Types

opaque type CoffeeMachine

Interface between the coffee machine service (on the left) and client (on the right), i.e. the service is the producer of this interface (service: X -⚬ CoffeeMachine), whereas the client is the consumer of this interface (client: CoffeeMachine -⚬ Y).

Interface between the coffee machine service (on the left) and client (on the right), i.e. the service is the producer of this interface (service: X -⚬ CoffeeMachine), whereas the client is the consumer of this interface (client: CoffeeMachine -⚬ Y).

The service offers the client a choice (|&|) between espresso, latte, and ending the interaction.

type LatteOptions = Val[Size] |*| Val[ShotCount] |*| Val[Option[Flavor]]