Crates.io | sip2 |
lib.rs | sip2 |
version | 0.3.2 |
source | src |
created_at | 2022-02-25 15:33:36.743161 |
updated_at | 2024-08-21 19:49:17.457226 |
description | SIP2 Library |
homepage | |
repository | https://github.com/kcls/evergreen-universe-rs |
max_upload_size | |
id | 539488 |
size | 98,862 |
Rust SIP2 Client Library
https://kcls.github.io/evergreen-universe-rs/sip2/index.html
cargo run --bin sip2-client-cli -- --sip-user sip-user \
--sip-pass sip-pass \
--item-barcode 30000017113634 \
--patron-barcode 394902 \
--message-type item-information \
--message-type patron-status \
--message-type patron-information
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::M_LOGIN,
vec![
FixedField::new(&spec::FF_UID_ALGO, "0").unwrap(),
FixedField::new(&spec::FF_PWD_ALGO, "0").unwrap(),
],
vec![
Field::new(spec::F_LOGIN_UID.code, user),
Field::new(spec::F_LOGIN_PWD.code, pass),
]
).expect("Message Has Valid Content");
let resp = con.sendrecv(&req).unwrap();
println!("Received: {}", resp);
// Verify the response reports a successful login
if resp.spec().code == spec::M_LOGIN_RESP.code
&& resp.fixed_fields().len() == 1
&& resp.fixed_fields()[0].value() == "1" {
println!("Login OK");
} else {
println!("Login Failed");
}
let req = Message::from_values(
&spec::M_LOGIN,
&["0", "0"],
&[("CN", "sip-username"), ("CO", "sip-password")]
).expect("Message Has Valid Content");
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.set_sip_user(user);
params.set_sip_pass(pass);
let resp = client.login(¶ms).unwrap();
prinln!("Received: {}", resp.msg());
match resp.ok() {
true => println!("Login OK"),
false => eprintln!("Login Failed"),
}