use std::str::FromStr;
use tinyid::TinyId;
fn main() {
let rand_id = TinyId::random();
let maybe = TinyId::from_str("AAAABBBB");
assert!(maybe.is_ok());
let bad = TinyId::from_str("AAAABBB");
assert!(bad.is_err());
let parsed = TinyId::from_str_unchecked("AAAABBBB");
assert_eq!(maybe.unwrap(), parsed);
println!("Random ID: {rand_id}");
println!("Parsed ID: {parsed}");
println!(" Debug ID: {parsed:?}");
println!("TinyID Size: {}", std::mem::size_of::<TinyId>());
let parsed2 = TinyId::from_str_unchecked("aaaaBBBB");
assert_ne!(parsed, parsed2);
assert!(parsed.starts_with("AAAA"));
assert!(parsed.ends_with("BBBB"));
assert!(!parsed.starts_with("BBBB"));
let mut switched = parsed;
assert_eq!(switched, parsed);
assert!(switched.is_valid());
assert!(!switched.is_null());
assert_ne!(switched, TinyId::null());
switched.make_null();
assert!(!switched.is_valid());
assert!(switched.is_null());
assert_eq!(switched, TinyId::null());
}