use gs1::epc::{decode_binary, EPCValue};
use gs1::GS1;
pub fn sgtin_96() -> String {
let tt = hex::decode("3074257BF7194E4000001A85").unwrap();
let tt = hex::encode(tt);
println!("{}", tt);
let data = decode_binary(&hex::decode("3074257BF7194E4000001A85").unwrap()).unwrap();
assert_eq!(data.to_uri(), "urn:epc:id:sgtin:0614141.812345.6789");
assert_eq!(
data.to_tag_uri(),
"urn:epc:tag:sgtin-96:3.0614141.812345.6789"
);
match data.get_value() {
EPCValue::SGTIN96(val) => {
assert_eq!(val.to_gs1(), "(01) 80614141123458 (21) 6789");
val.to_gs1()
}
_ => String::new()
}
}
pub fn sgtin_198() {
let data = decode_binary(
&hex::decode("3674257BF6B7A659B2C2BF100000000000000000000000000000").unwrap(),
)
.unwrap();
assert_eq!(data.to_uri(), "urn:epc:id:sgtin:0614141.712345.32a%2Fb");
assert_eq!(
data.to_tag_uri(),
"urn:epc:tag:sgtin-198:3.0614141.712345.32a%2Fb"
);
let data = match data.get_value() {
EPCValue::SGTIN198(val) => val,
_ => {
panic!("Invalid type")
}
};
assert_eq!(data.to_gs1(), "(01) 70614141123451 (21) 32a/b");
}
pub fn sscc_96() -> String {
let t = &hex::decode("3174257BF4499602D2000000").unwrap();
println!("{:#?}", t);
let data = decode_binary(&hex::decode("3174257BF4499602D2000000").unwrap()).unwrap();
assert_eq!(data.to_uri(), "urn:epc:id:sscc:0614141.1234567890");
assert_eq!(data.to_tag_uri(), "urn:epc:tag:sscc-96:3.0614141.1234567890");
let ttt = "urn:epc:tag:sscc-96:3.0614141.1234567890";
println!("{}", &ttt[10..=14]);
let str = String::new();
match data.get_value() {
EPCValue::SSCC96(val) => {
println!("序列号: {}", val.serial);
println!("指示信号: {}", val.indicator);
println!("公司: {}", val.company);
println!("滤器: {}", val.filter);
println!("隔断: {}", val.partition);
assert_eq!(val.to_gs1(), "(00) 106141412345678908");
val.to_gs1()
}
_ => str
}
}
pub fn sgln_96() -> String {
let tt=hex::encode("urn:epc:id:sscc:0614141.1234567890");
println!("{}",tt);
let data = decode_binary(&hex::decode("3274257BF46072000000162E").unwrap()).unwrap();
assert_eq!(data.to_uri(), "urn:epc:id:sscc:0614141.1234567890");
assert_eq!(data.to_tag_uri(), "urn:epc:tag:sscc-96:3.0614141.1234567890");
let str = String::new();
str
}
pub fn gid_96() -> String {
let data = decode_binary(&hex::decode("3500E86F8000A9E000000586").unwrap()).unwrap();
assert_eq!(data.to_uri(), "urn:epc:id:gid:952056.2718.1414");
assert_eq!(data.to_tag_uri(), "urn:epc:tag:gid-96:952056.2718.1414");
data.to_uri()
}