hjkl_theme/palette.rs
1use std::collections::HashMap;
2
3use crate::color::{Color, LiteralColor, RawPalette};
4
5/// Resolved palette: name -> `Color`.
6#[derive(Clone, Default, Debug)]
7pub struct Palette(pub HashMap<String, Color>);
8
9impl Palette {
10 /// Build from a raw deserialized palette table.
11 pub(crate) fn from_raw(raw: RawPalette) -> Self {
12 let map = raw
13 .0
14 .into_iter()
15 .map(|(k, LiteralColor(c))| (k, c))
16 .collect();
17 Self(map)
18 }
19
20 /// Look up a color by name.
21 pub fn get(&self, name: &str) -> Option<Color> {
22 self.0.get(name).copied()
23 }
24}