///|
fn main {
try {
let program = @sieve.compile(
"require [\"fileinto\", \"copy\"]; if header :contains \"List-Id\" \"moonbit\" { fileinto :copy \"Lists/MoonBit\"; }",
)
let message = @sieve.Message::new(
[{ name: "List-Id", value: "dev.moonbit.example.org" }],
2048,
envelope_from="sender@example.org",
envelope_to=["reader@example.org"],
)
let plan = program.run(message)
println(
plan
.as_json(include_trace=false, redact_destinations=true)
.stringify(indent=2),
)
} catch {
@sieve.SieveError(d) => println(d.render("", filename="example"))
}
}