use sashite_sin::{Identifier, Letter, ParseError, Side};
fn main() -> Result<(), ParseError> {
let western = Identifier::parse("W")?;
println!("token : {western}");
println!(" letter : {}", western.letter().as_char());
println!(" side : {:?}", western.side());
println!(" to_char : {}", western.to_char());
println!(" is_first : {}", western.is_first());
let second = western.flipped();
let chinese = western.with_letter(Letter::try_from_char('C')?);
println!("flipped : {second}");
println!("with_letter : {chinese}");
let japanese = Identifier::new(Letter::try_from_char('J')?, Side::Second);
println!("built : {japanese} (the second-side Japanese style)");
println!("is_valid(\"S\") : {}", Identifier::is_valid("S"));
println!("is_valid(\"WW\"): {}", Identifier::is_valid("WW"));
Ok(())
}