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.writeaug
// 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
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.writeIt 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.