///|
fn main {
let default_namespace =
#|urn:entry:demoMoonFeed2026-10-20T12:00:00ZMoonBitHello
let explicit_prefix =
#|urn:entry:demoMoonFeed2026-10-20T12:00:00ZMoonBitHello
try {
match
(
@moonfeed.parse_atom_document(default_namespace),
@moonfeed.parse_atom_document(explicit_prefix),
) {
(
@moonfeed.AtomDocument::EntryDocument(a),
@moonfeed.AtomDocument::EntryDocument(b),
) => {
assert_eq(a.metadata.id, b.metadata.id)
assert_eq(
a.metadata.title.unwrap().value,
b.metadata.title.unwrap().value,
)
assert_eq(
a.metadata.updated.unwrap().raw,
b.metadata.updated.unwrap().raw,
)
assert_eq(
a.metadata.updated.unwrap().unix_seconds,
b.metadata.updated.unwrap().unix_seconds,
)
assert_eq(a.effective_authors[0].name, b.effective_authors[0].name)
assert_eq(
a.metadata.links[0].href.resolved,
b.metadata.links[0].href.resolved,
)
assert_eq(a.content.unwrap().value, b.content.unwrap().value)
println("Equivalent Entry Documents: PASS")
println(a.metadata.id.unwrap())
println(a.metadata.links[0].href.raw)
println(a.metadata.links[0].href.resolved)
}
_ => abort("expected two Entry Documents")
}
} catch {
_ => abort("Atom document validation failed")
}
}