///|
fn main {
let body = "--demo\r\n" +
"Content-Disposition: form-data; name=\"title\"\r\n" +
"\r\n" +
"MoonFormData demo\r\n" +
"--demo\r\n" +
"Content-Disposition: form-data; name=\"upload\"; filename=\"..\\\\report.txt\"\r\n" +
"Content-Type: text/plain\r\n" +
"\r\n" +
"hello from MoonBit\r\n" +
"--demo--\r\n"
match @moonformdata.parse_multipart(body, "demo") {
Ok(form) => {
println("parsed parts: " + form.parts.length().to_string())
println("title: " + form.field_value("title").unwrap_or(""))
let files = form.files("upload")
if files.length() > 0 {
println("file name: " + files[0].filename.unwrap_or(""))
println("file body: " + files[0].body)
}
}
Err(err) => println("parse error: " + err.message())
}
let encoded_parts = [
@moonformdata.FormPart::{
name: "message",
filename: None,
content_type: None,
headers: [],
body: "generated by MoonFormData",
},
]
match @moonformdata.encode_multipart(encoded_parts, boundary="generated") {
Ok(encoded) => {
println("encoded content-type: " + encoded.content_type)
println("encoded bytes: " + encoded.body.length().to_string())
}
Err(err) => println("encode error: " + err.message())
}
match @moonformdata.parse_multipart("--oops--\r\n", "bad\r\nboundary") {
Ok(_) => println("unexpected success")
Err(err) => println("expected error: " + err.message())
}
}