Skip to content
Juvix imports

module tutorial.engines.template_messages;

import prelude open;

Template Messages

These are the messages that the Template engine can receive/respond to.

Message interface

TemplateMsgJustHi

Lorem ipsum dolor sit amet, consectetur adipiscing elit.

TemplateMsgExampleRequest ExampleRequest

Example request.

type ExampleRequest : Type :=
mkExampleRequest@{
argOne : Nat;
argTwo : Nat;
};
Arguments
argOne
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
argTwo
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

TemplateMsgExampleReply ExampleReply

Reply to an ExampleRequest.

ExampleReplyOk

Example OK reply.

type ExampleReplyOk : Type := mkExampleReplyOk@{argOne : Nat};
Arguments
argOne
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

ExampleReplyError

Example error reply.

type ExampleReplyError : Type :=
| ExampleErrorOne
| ExampleErrorTwo;
Error types
ExampleErrorOne
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
ExampleErrorTwo
Lorem ipsum dolor sit amet, consectetur adipiscing elit.

ExampleReply

ExampleReply : Type := Result ExampleReplyError ExampleReplyOk;

TemplateMsg

type TemplateMsg :=
| TemplateMsgJustHi
| TemplateMsgExampleRequest ExampleRequest
| TemplateMsgExampleReply ExampleReply;

Sequence Diagrams

ExampleRequest & ExampleReply

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed ut purus eget sapien. Nulla facilisi.

sequenceDiagram
    participant TemplateClient
    participant Template

    TemplateClient ->> Template: ExampleRequest
    Template ->> TemplateClient: ExampleReplyOk

    TemplateClient ->> Template: ExampleRequest
    Template ->> TemplateClient: ExampleReplyErrorOne
Sequence Diagram: ExampleRequest & ExampleReply