///|
/// Original synthetic wire data, not a captured user's email. This consumer
/// uses only the public MoonBit core; no Node regex or networking dependency.
fn main {
try {
let selection_decoder = @imap.Decoder::new()
let selection = @imap.completed_response(
"A1",
selection_decoder.feed(
b"* 1 EXISTS\r\n* OK [UIDVALIDITY 77] valid\r\n* OK [UIDNEXT 43] predicted\r\nA1 OK [READ-ONLY] selected\r\n",
),
).selection(read_only=true)
selection_decoder.finish()
let decoder = @imap.Decoder::new()
let responses = decoder.feed(b"* 12 FETCH (BODY[] {6}\r\nA\x00")
responses.append(
decoder.feed(b"\xff\r\nB UID 42 RFC822.SIZE 6)\r\nA2 OK done\r\n"),
)
decoder.finish()
let record = @imap.completed_response("A2", responses).fetch()[0]
let uid = record.uid.unwrap()
let identity = selection.identity("INBOX", uid)
match record.body {
Body(bytes) =>
println(
"mailbox=\{identity.mailbox} validity=\{identity.uid_validity} uid=\{identity.uid} sequence=\{record.sequence} bytes=\{bytes.length()}",
)
_ => abort("example expected body")
}
} catch {
@imap.Invalid(message) => abort(message)
}
}