use bc_envelope::prelude::*;
use bc_envelope_pattern::{Matcher, Pattern};
fn main() {
println!("Testing new dcbor-pattern BSTR syntax");
let pattern = Pattern::parse("bstr").unwrap();
println!("Pattern 'bstr' parsed: {}", pattern);
let bytes = vec![0x48, 0x65, 0x6c, 0x6c, 0x6f]; let envelope = Envelope::new(dcbor::CBOR::to_byte_string(bytes.clone()));
let matches = pattern.matches(&envelope);
println!("Pattern 'bstr' matches byte string envelope: {}", matches);
let pattern = Pattern::parse("h'48656c6c6f'").unwrap();
println!("Pattern 'h'48656c6c6f'' parsed: {}", pattern);
let matches = pattern.matches(&envelope);
println!(
"Pattern 'h'48656c6c6f'' matches 'Hello' envelope: {}",
matches
);
let pattern = Pattern::parse("h'/^He.*o$/'").unwrap();
println!("Pattern 'h'/^He.*o$/' parsed: {}", pattern);
let matches = pattern.matches(&envelope);
println!(
"Pattern 'h'/^He.*o$/' matches 'Hello' envelope: {}",
matches
);
let text_envelope = Envelope::new("Hello");
let bstr_pattern = Pattern::parse("bstr").unwrap();
let matches = bstr_pattern.matches(&text_envelope);
println!("Pattern 'bstr' matches text envelope: {}", matches);
}