Skip to content

greeter.aug ​

Labeled calls and injection · Source and specification

Files in this project

Code ​

aug
// aug-spec: "greeter.aug.md" explains this file. Read it before changes; refresh with aug spec.
import Console from august.io
import Logger from logger
Greeter(resolve Logger logger, int x) implements IGreeter:
    greet(resolve Console console, string name):
        logger.log(message="Hello, " + name + "!")
interface IGreeter:
    greet(resolve Console console, string name) uses Console.write
aug
// aug-spec: "greeter.aug.md" explains this file. Read it before changes; refresh with aug spec.
import Console from august.io
import Logger from logger
Greeter(resolve Logger logger, int x) implements IGreeter {
    greet(resolve Console console, string name) {
        logger.log(message="Hello, " + name + "!")
    }
}
interface IGreeter {
    greet(resolve Console console, string name) uses Console.write
}

Compiled specification ​

Interactions and sequences

Greeter · class · source ​

It implements IGreeter. It takes x as an integer, kept read-only. It gets logger (Logger), kept read-only from dependency injection.

Greeter.greet · source ​

It takes name as a string. It gets console (Console) from dependency injection. It can call Console.write. It passes the text Hello, {name}! to logger.log, using injected console. source

Checked interface
text
greet(resolve Console console, string name) returns void uses Console.write

It takes name as a string. It gets console (Console) from dependency injection. It can call Console.write.

IGreeter · interface · source ​

IGreeter.greet · source ​

It takes name as a string. It gets console (Console) from dependency injection. It can call Console.write.

Dependencies ​

It uses Console (write) from august.io. It uses Logger (log) from logger.

Last updated:

The world runs on language