///|
fn main raise {
let packager = @iso.iso1987_packager()
let request = @iso.message("0100").unwrap()
request.set_field(2, "6222021234567890").unwrap()
request.set_field(3, "000000").unwrap()
request.set_field(4, "000000001500").unwrap()
request.set_field(7, "0916123456").unwrap()
request.set_field(11, "123456").unwrap()
request.set_field(14, "2912").unwrap()
request.set_field(22, "051").unwrap()
request.set_field(41, "TERM0001").unwrap()
request.set_field(42, "MERCHANT0000001").unwrap()
request.set_field(49, "156").unwrap()
request.set_field(55, "9F260811223344556677889F270180").unwrap()
let template_issues = @iso.validate_known_message_template(request).unwrap()
assert_eq(template_issues.length(), 0)
let request_wire = @iso.pack_message(
packager,
@iso.ascii_binary_profile(),
request,
).unwrap()
let received = @iso.unpack_message(
packager,
@iso.ascii_binary_profile(),
request_wire,
).unwrap()
let response = @iso.response_skeleton(received, "00").unwrap()
response.set_field(38, "A12345").unwrap()
assert_true(@iso.response_correlates(received, response))
println("authorization request bytes=\{request_wire.length()}")
println(@iso.safe_message_dump(received, packager))
println(@iso.safe_message_dump(response, packager))
}