///|
fn main {
let published = @feed_gen.FeedDate::utc(2026, 6, 27, hour=12)
let item = @feed_gen.FeedItem::new(
"Hello from feed_gen",
description="A small sample item generated by the command package.",
)
.set_url(Some("https://example.com/posts/hello-feed-gen"))
.set_guid(Some("https://example.com/posts/hello-feed-gen"))
.set_pub_date(Some(published))
let config = @feed_gen.FeedConfig::new(
"feed_gen sample",
"A sample RSS and Atom feed generated with MoonBit.",
"https://example.com",
items=[item],
)
.set_feed_url(Some("https://example.com/feed.xml"))
.set_author(Some(@feed_gen.Author::new("MoonBit Example")))
.set_last_build_date(Some(published))
.set_language(Some("en"))
println("RSS")
println("---")
print_rendered(config.to_xml(indent=true))
println("")
println("Atom")
println("----")
print_rendered(config.to_atom(indent=true))
}
///|
fn print_rendered(result : Result[String, Array[@feed_gen.FeedError]]) -> Unit {
match result {
Ok(xml) => println(xml)
Err(errors) => {
println("failed to render feed:")
for error in errors {
println("- \{Repr(error)}")
}
}
}
}