use prismatica::prelude::*;
fn main() {
println!("-- find_by_name --");
for name in ["batlow", "viridis", "nonexistent"] {
match find_by_name(name) {
Some(cm) => println!(
" Found \"{}\": {:?}, collection={}, cvd_friendly={}",
cm.meta.name, cm.meta.kind, cm.meta.collection, cm.meta.cvd_friendly,
),
None => println!(" \"{}\" not found", name),
}
}
println!("\n-- filter_by_kind(Diverging) --");
let diverging = filter_by_kind(ColormapKind::Diverging);
println!(" {} diverging colormaps:", diverging.len());
for cm in diverging.iter().take(8) {
let c = cm.eval(0.5);
print!(
" \x1b[48;2;{};{};{}m \x1b[0m {}",
c.r, c.g, c.b, cm.meta.name
);
println!(" ({})", cm.meta.collection);
}
if diverging.len() > 8 {
println!(" ... and {} more", diverging.len() - 8);
}
println!("\n-- filter_by_collection(\"cmocean\") --");
let cmocean = filter_by_collection("cmocean");
println!(" {} cmocean colormaps:", cmocean.len());
for cm in &cmocean {
let c = cm.eval(0.5);
print!(" \x1b[48;2;{};{};{}m \x1b[0m", c.r, c.g, c.b);
println!(" {:<14} {:?}", cm.meta.name, cm.meta.kind);
}
println!("\n-- find_palette_by_name --");
if let Some(p) = find_palette_by_name("Set2") {
print!(" {} ({} colors): ", p.meta.name, p.len());
for i in 0..p.len() {
let c = p.get(i);
print!("\x1b[48;2;{};{};{}m \x1b[0m", c.r, c.g, c.b);
}
println!();
}
}