Rust SIP2 Client Library
sh
cargo run --example sip2-client -- --sip-host sip.example.org:6001 \
--sip-user sip-login --sip-pass sip-password \
--patron-barcode 1234567890 --item-barcode 0987654321
```rs use sip2::*;
let host = "localhost:6001"; let user = "sip-user"; let pass = "sip-pass";
let con = Connection::new(host).unwrap();
let req = Message::new( &spec::MLOGIN, vec![ FixedField::new(&spec::FFUIDALGO, "0").unwrap(), FixedField::new(&spec::FFPWDALGO, "0").unwrap(), ], vec![ Field::new(spec::FLOGINUID.code, user), Field::new(spec::FLOGIN_PWD.code, pass), ] );
let resp = con.sendrecv(&req).unwrap();
println!("Received: {}", resp);
// Verify the response reports a successful login if resp.spec().code == spec::MLOGINRESP.code && resp.fixedfields().len() == 1 && resp.fixedfields()[0].value() == "1" {
println!("Login OK");
} else {
println!("Login Failed");
}
```
```rs use sip2::*;
let host = "localhost:6001"; let user = "sip-user"; let pass = "sip-pass";
let mut client = Client::new(host).unwrap();
let params = ParamSet::new(); params.setsipuser(user); params.setsippass(pass);
let resp = client.login(¶ms).unwrap();
prinln!("Received: {}", resp.msg());
match resp.ok() { true => println!("Login OK"), false => eprintln!("Login Failed"), }
```