Skip to main content

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}