rainbow_core/schema/
mod.rs

1use std::{
2    collections::BTreeMap,
3    fmt::{Debug, Formatter},
4};
5
6use rainbow_pest::HexColor;
7
8mod methods;
9mod value;
10
11#[derive(Debug, Clone, PartialEq, Eq)]
12pub struct Schema {
13    pub schema: String,
14    pub theme: String,
15    pub variant: String,
16    pub custom: BTreeMap<String, Value>,
17    pub language: BTreeMap<String, Value>,
18}
19
20#[derive(Clone, Eq, PartialEq)]
21pub enum Value {
22    Reference(Vec<String>),
23    Owned(Box<OwnedValue>),
24}
25
26#[derive(Clone, Eq, PartialEq)]
27pub enum OwnedValue {
28    Null,
29    String(String),
30    Number(String),
31    Boolean(bool),
32    Color(HexColor),
33    Object(BTreeMap<String, Value>),
34}