use form_net::{FormError, Limits, Policy};
fn main() -> Result<(), FormError> {
let body = b"email=ada%40example.com&password=s3cret%21&remember=on";
let form = form_net::parse_urlencoded(body)?;
println!("email: {:?}", form.get("email"));
println!("remember: {}", form.contains("remember"));
println!("debug: {form:?}");
const LOGIN: Limits = Limits::DEFAULT
.with_max_body_bytes(4 * 1024)
.with_max_fields(8);
let form = form_net::parse_urlencoded_with(body, &LOGIN, &Policy::DEFAULT)?;
println!("fields: {}", form.len());
let polluted = form_net::parse_urlencoded(b"role=user&role=admin")?;
match polluted.get_one("role") {
Ok(v) => println!("role: {v:?}"),
Err(e) => println!("refused: {e} (status {})", e.status_hint()),
}
if let Err(e) = form_net::parse_urlencoded(b"name=%zz") {
println!("refused: {e} (code {})", e.code());
}
Ok(())
}