comline/core/examples/dev.ids
2023-08-28 20:09:31 +01:00

49 lines
849 B
Plaintext

tag @?
namespace examples.full
// Standard Imports
import std::str::StringBounds
settings {
indexed-all=false
allow-debugging=true
}
@affects=struct protocol
settings MailSettings {
indexed=true
}
@settings=MailSettings
struct Mail {
1# sender: str
2# recipient: str
}
struct Article {
@validators=[StringBounds(min_chars=3 max_chars=32]
1# title: str
@validators=[StringBounds(min_chars=24 max_chars=412]
2# content: str
}
@hidden
@settings=MailSettings
protocol Mail {
1# async function send(Mail)
}
// Maximum amount of articles that a provider can send
const SENT_ARTICLES_MAX: u8 = 10
protocol Feed {
// Fetches new articles since last fetch
@flexible async stream
#timeout=1000ms per_send_timeout=10s cooldown=10s
1# function fetch_articles() -> Article[SENT_ARTICLES_MAX]
}