///|
/// Parse an RFC 4515 filter, encode it to BER, decode it back and confirm
/// the round trip is lossless.
fn main {
let filter = "(&(cn=Jo*)(|(uid=1)(mail=*@x)))"
let parsed = @moonldap.parse_filter(filter).unwrap()
println("input: \{filter}")
println("parsed: \{parsed.to_string()}")
let bytes = @moonldap.encode_filter(parsed)
println("ber: \{@moonldap.to_hex_upper(bytes[:])}")
let decoded = @moonldap.decode_filter(bytes, None).unwrap()
let equal = decoded == parsed
println("roundtrip: \{equal}")
if !equal {
abort("filter round trip failed")
}
}