resource.aug
Move ownership · Source and specification
Files in this project
Code
aug
// aug-spec: "resource.aug.md" explains this file. Read it before changes; refresh with aug spec.
import Console from august.io
Resource() implements IResource:
drop():
pass
interface IResource:
pass
make() returns own Resource:
own Resource value = Resource()
return value
consume(resolve Console console, own Resource value):
console.write(value="consumed")aug
// aug-spec: "resource.aug.md" explains this file. Read it before changes; refresh with aug spec.
import Console from august.io
Resource() implements IResource {
drop() {
pass
}
}
interface IResource {
pass
}
make() returns own Resource {
own Resource value = Resource()
return value
}
consume(resolve Console console, own Resource value) {
console.write(value="consumed")
}Compiled specification
Resource · class · source
It implements IResource.
Resource.drop · source
It continues without an operation. source
Checked interface
text
drop() returns voidIResource · interface · source
make · source
It returns ownership of Resource. It creates Resource and stores the result in owned value (Resource). It returns value. source
consume · source
It takes value as Resource with ownership transferred. It gets console (Console) from dependency injection. It can call Console.write. It passes "consumed" to console.write. source
Checked interface
text
consume(resolve Console console, own Resource value) returns void uses Console.writeIt takes value as Resource with ownership transferred. It gets console (Console) from dependency injection. It can call Console.write.