///|
fn main {
let base_text =
#|[server]
#|host = localhost
#|port = 8080
#|mode = development
#|
#|[auth]
#|token = local-token
let prod_text =
#|[server]
#|host = prod.example.test
#|mode = production
#|
#|[auth]
#|oauth = on
let base = @lib.parse_ini("base.ini", base_text).document
let prod = @lib.parse_ini("prod.ini", prod_text).document
let view = @lib.merge_layers([
@lib.layer("base", 0, base),
@lib.layer("prod", 10, prod),
])
let diagnostics = @lib.validate(view, [
@lib.required("server.host"),
@lib.int_range("server.port", Some(1), Some(65535)),
@lib.enum_value("server.mode", ["development", "test", "production"]),
@lib.secret_like("auth.token"),
])
println(@lib.render_markdown_report(view, diagnostics))
}