use thag_styling::{styling::Role, Styleable, Styler};
fn main() -> Result<(), Box<dyn std::error::Error>> {
println!("đ¨ Testing Palette Optimization Changes");
println!("========================================");
let all_roles = [
(Role::Heading1, "Primary Heading", "đ¯"),
(Role::Heading2, "Secondary Heading", "đ"),
(Role::Heading3, "Tertiary Heading", "đ"),
(Role::Error, "Critical Error", "â"),
(Role::Warning, "Important Warning", "â ī¸"),
(Role::Success, "Success Message", "â
"),
(Role::Info, "Information", "âšī¸"),
(Role::Emphasis, "Emphasized Text", "đĒ"),
(Role::Code, "Code Snippet", "đģ"),
(Role::Normal, "Normal Text", "đ"),
(Role::Subtle, "Subtle Text", "đ"),
(Role::Hint, "Helpful Hint", "đĄ"),
(Role::Debug, "Debug Info", "đ"),
(Role::Link, "Hyperlink", "đ"), (Role::Quote, "Quoted Text", "đŦ"), (Role::Commentary, "Commentary", "đ"), ];
println!(
"Total roles: {} (perfect 16-color mapping!)",
all_roles.len()
);
println!();
println!("đ Role Demonstrations:");
for (role, description, emoji) in &all_roles {
let styled_text = format!("{} {}", emoji, description);
println!(" {}", role.paint(&styled_text));
}
println!();
println!("đ New Roles Showcase:");
println!(" {}", "Visit https://github.com/rust-lang/rust".link());
println!(
" {}",
"As Einstein said: \"Imagination is more important than knowledge\"".quote()
);
println!(
" {}",
"Note: This feature was added in version 0.2".commentary()
);
println!();
println!("đ¨ Styleable Trait Methods:");
println!(" {}", "Click this link!".link());
println!(" {}", "\"To be or not to be\"".quote());
println!(" {}", "This is additional context".commentary());
println!();
println!("â
Verification: Role::Trace successfully removed");
println!("â
Verification: New roles Link, Quote, Commentary added");
println!("â
Verification: Perfect 1:1 mapping with 16-color palette achieved");
println!();
println!("đ¯ Palette optimization complete!");
Ok(())
}