use serde::{Deserialize, Serialize};
use super::types::Brightness;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum StarKey {
ZiweiMaj,
TianjiMaj,
TaiyangMaj,
WuquMaj,
TiantongMaj,
LianzhenMaj,
TianfuMaj,
TaiyinMaj,
TanlangMaj,
JumenMaj,
TianxiangMaj,
TianliangMaj,
QishaMaj,
PojunMaj,
ZuofuMin,
YoubiMin,
WenchangMin,
WenquMin,
LucunMin,
TianmaMin,
QingyangMin,
TuoluoMin,
HuoxingMin,
LingxingMin,
TiankuiMin,
TianyueMin,
DikongMin,
DijieMin,
JieshaAdj,
Tiankong,
Tianxing,
Tianyao,
Jieshen,
Yinsha,
Tianxi,
Tianguan,
Tianfu,
Tianku,
Tianxu,
Longchi,
Fengge,
Hongluan,
Guchen,
Guasu,
Feilian,
Posui,
Taifu,
Fenggao,
Tianwu,
Tianyue2,
Santai,
Bazuo,
Engguang,
Tiangui,
Tiancai,
Tianshou,
Jiekong,
Xunzhong,
Xunkong,
Kongwang,
Jielu,
Yuede,
Tianshang,
Tianshi,
Tianchu,
Changsheng,
Muyu,
Guandai,
Linguan,
Diwang,
Shuai,
Bing,
Si,
Mu,
Jue,
Tai,
Yang,
Boshi,
Lishi,
Qinglong,
Xiaohao,
Jiangjun,
Zhoushu,
Faylian,
Xishen,
Bingfu,
Dahao,
Suipo,
Fubing,
Guanfu,
Suijian,
Huiqi,
Sangmen,
Guansuo,
Gwanfu,
Longde,
Baihu,
Tiande,
Diaoke,
Jiangxing,
Panan,
Suiyi,
Xiishen,
Huagai,
Jiesha,
Zhaisha,
Tiansha,
Zhibei,
Xianchi,
Yuesha,
Wangshen,
Yunkui,
Yunyue,
Yunchang,
Yunqu,
Yunluan,
Yunxi,
Yunlu,
Yunyang,
Yuntuo,
Yunma,
Liukui,
Liuyue,
Liuchang,
Liuqu,
Liuluan,
Liuxi,
Liulu,
Liuyang,
Liutuo,
Liuma,
Nianjie,
Yuekui,
Yueyue,
Yuechang,
Yuequ,
Yueluan,
Yuexi,
Yuelu,
Yueyang,
Yuetuo,
Yuema,
Rikui,
Riyue,
Richang,
Riqu,
Riluan,
Rixi,
Rilu,
Riyang,
Rituo,
Rima,
Shikui,
Shiyue,
Shichang,
Shiqu,
Shiluan,
Shixi,
Shilu,
Shiyang,
Shituo,
Shima,
}
pub fn get_brightness_table(key: StarKey) -> Option<[Option<Brightness>; 12]> {
use Brightness::*;
let s = |b: Brightness| Some(b);
let n: Option<Brightness> = None;
match key {
StarKey::ZiweiMaj => Some([
s(Wang),
s(Wang),
s(De),
s(Wang),
s(Miao),
s(Miao),
s(Wang),
s(Wang),
s(De),
s(Wang),
s(Ping),
s(Miao),
]),
StarKey::TianjiMaj => Some([
s(De),
s(Wang),
s(Li),
s(Ping),
s(Miao),
s(Xian),
s(De),
s(Wang),
s(Li),
s(Ping),
s(Miao),
s(Xian),
]),
StarKey::TaiyangMaj => Some([
s(Wang),
s(Miao),
s(Wang),
s(Wang),
s(Wang),
s(De),
s(De),
s(Xian),
s(Bu),
s(Xian),
s(Xian),
s(Bu),
]),
StarKey::WuquMaj => Some([
s(De),
s(Li),
s(Miao),
s(Ping),
s(Wang),
s(Miao),
s(De),
s(Li),
s(Miao),
s(Ping),
s(Wang),
s(Miao),
]),
StarKey::TiantongMaj => Some([
s(Li),
s(Ping),
s(Ping),
s(Miao),
s(Xian),
s(Bu),
s(Wang),
s(Ping),
s(Ping),
s(Miao),
s(Wang),
s(Bu),
]),
StarKey::LianzhenMaj => Some([
s(Miao),
s(Ping),
s(Li),
s(Xian),
s(Ping),
s(Li),
s(Miao),
s(Ping),
s(Li),
s(Xian),
s(Ping),
s(Li),
]),
StarKey::TianfuMaj => Some([
s(Miao),
s(De),
s(Miao),
s(De),
s(Wang),
s(Miao),
s(De),
s(Wang),
s(Miao),
s(De),
s(Miao),
s(Miao),
]),
StarKey::TaiyinMaj => Some([
s(Wang),
s(Xian),
s(Xian),
s(Xian),
s(Bu),
s(Bu),
s(Li),
s(Bu),
s(Wang),
s(Miao),
s(Miao),
s(Miao),
]),
StarKey::TanlangMaj => Some([
s(Ping),
s(Li),
s(Miao),
s(Xian),
s(Wang),
s(Miao),
s(Ping),
s(Li),
s(Miao),
s(Xian),
s(Wang),
s(Miao),
]),
StarKey::JumenMaj => Some([
s(Miao),
s(Miao),
s(Xian),
s(Wang),
s(Wang),
s(Bu),
s(Miao),
s(Miao),
s(Xian),
s(Wang),
s(Wang),
s(Bu),
]),
StarKey::TianxiangMaj => Some([
s(Miao),
s(Xian),
s(De),
s(De),
s(Miao),
s(De),
s(Miao),
s(Xian),
s(De),
s(De),
s(Miao),
s(Miao),
]),
StarKey::TianliangMaj => Some([
s(Miao),
s(Miao),
s(Miao),
s(Xian),
s(Miao),
s(Wang),
s(Xian),
s(De),
s(Miao),
s(Xian),
s(Miao),
s(Wang),
]),
StarKey::QishaMaj => Some([
s(Miao),
s(Wang),
s(Miao),
s(Ping),
s(Wang),
s(Miao),
s(Miao),
s(Miao),
s(Miao),
s(Ping),
s(Wang),
s(Miao),
]),
StarKey::PojunMaj => Some([
s(De),
s(Xian),
s(Wang),
s(Ping),
s(Miao),
s(Wang),
s(De),
s(Xian),
s(Wang),
s(Ping),
s(Miao),
s(Wang),
]),
StarKey::WenchangMin => Some([
s(Xian),
s(Li),
s(De),
s(Miao),
s(Xian),
s(Li),
s(De),
s(Miao),
s(Xian),
s(Li),
s(De),
s(Miao),
]),
StarKey::WenquMin => Some([
s(Ping),
s(Wang),
s(De),
s(Miao),
s(Xian),
s(Wang),
s(De),
s(Miao),
s(Xian),
s(Wang),
s(De),
s(Miao),
]),
StarKey::HuoxingMin => Some([
s(Miao),
s(Li),
s(Xian),
s(De),
s(Miao),
s(Li),
s(Xian),
s(De),
s(Miao),
s(Li),
s(Xian),
s(De),
]),
StarKey::LingxingMin => Some([
s(Miao),
s(Li),
s(Xian),
s(De),
s(Miao),
s(Li),
s(Xian),
s(De),
s(Miao),
s(Li),
s(Xian),
s(De),
]),
StarKey::QingyangMin => Some([
n,
s(Xian),
s(Miao),
n,
s(Xian),
s(Miao),
n,
s(Xian),
s(Miao),
n,
s(Xian),
s(Miao),
]),
StarKey::TuoluoMin => Some([
s(Xian),
n,
s(Miao),
s(Xian),
n,
s(Miao),
s(Xian),
n,
s(Miao),
s(Xian),
n,
s(Miao),
]),
_ => None,
}
}
impl StarKey {
pub fn as_key(&self) -> &'static str {
match self {
StarKey::ZiweiMaj => "ziweiMaj",
StarKey::TianjiMaj => "tianjiMaj",
StarKey::TaiyangMaj => "taiyangMaj",
StarKey::WuquMaj => "wuquMaj",
StarKey::TiantongMaj => "tiantongMaj",
StarKey::LianzhenMaj => "lianzhenMaj",
StarKey::TianfuMaj => "tianfuMaj",
StarKey::TaiyinMaj => "taiyinMaj",
StarKey::TanlangMaj => "tanlangMaj",
StarKey::JumenMaj => "jumenMaj",
StarKey::TianxiangMaj => "tianxiangMaj",
StarKey::TianliangMaj => "tianliangMaj",
StarKey::QishaMaj => "qishaMaj",
StarKey::PojunMaj => "pojunMaj",
StarKey::ZuofuMin => "zuofuMin",
StarKey::YoubiMin => "youbiMin",
StarKey::WenchangMin => "wenchangMin",
StarKey::WenquMin => "wenquMin",
StarKey::LucunMin => "lucunMin",
StarKey::TianmaMin => "tianmaMin",
StarKey::QingyangMin => "qingyangMin",
StarKey::TuoluoMin => "tuoluoMin",
StarKey::HuoxingMin => "huoxingMin",
StarKey::LingxingMin => "lingxingMin",
StarKey::TiankuiMin => "tiankuiMin",
StarKey::TianyueMin => "tianyueMin",
StarKey::DikongMin => "dikongMin",
StarKey::DijieMin => "dijieMin",
StarKey::JieshaAdj => "jieshaAdj",
StarKey::Tiankong => "tiankong",
StarKey::Tianxing => "tianxing",
StarKey::Tianyao => "tianyao",
StarKey::Jieshen => "jieshen",
StarKey::Yinsha => "yinsha",
StarKey::Tianxi => "tianxi",
StarKey::Tianguan => "tianguan",
StarKey::Tianfu => "tianfu",
StarKey::Tianku => "tianku",
StarKey::Tianxu => "tianxu",
StarKey::Longchi => "longchi",
StarKey::Fengge => "fengge",
StarKey::Hongluan => "hongluan",
StarKey::Guchen => "guchen",
StarKey::Guasu => "guasu",
StarKey::Feilian => "feilian",
StarKey::Posui => "posui",
StarKey::Taifu => "taifu",
StarKey::Fenggao => "fenggao",
StarKey::Tianwu => "tianwu",
StarKey::Tianyue2 => "tianyue",
StarKey::Santai => "santai",
StarKey::Bazuo => "bazuo",
StarKey::Engguang => "engguang",
StarKey::Tiangui => "tiangui",
StarKey::Tiancai => "tiancai",
StarKey::Tianshou => "tianshou",
StarKey::Jiekong => "jiekong",
StarKey::Xunzhong => "xunzhong",
StarKey::Xunkong => "xunkong",
StarKey::Kongwang => "kongwang",
StarKey::Jielu => "jielu",
StarKey::Yuede => "yuede",
StarKey::Tianshang => "tianshang",
StarKey::Tianshi => "tianshi",
StarKey::Tianchu => "tianchu",
StarKey::Changsheng => "changsheng",
StarKey::Muyu => "muyu",
StarKey::Guandai => "guandai",
StarKey::Linguan => "linguan",
StarKey::Diwang => "diwang",
StarKey::Shuai => "shuai",
StarKey::Bing => "bing",
StarKey::Si => "si",
StarKey::Mu => "mu",
StarKey::Jue => "jue",
StarKey::Tai => "tai",
StarKey::Yang => "yang",
StarKey::Boshi => "boshi",
StarKey::Lishi => "lishi",
StarKey::Qinglong => "qinglong",
StarKey::Xiaohao => "xiaohao",
StarKey::Jiangjun => "jiangjun",
StarKey::Zhoushu => "zhoushu",
StarKey::Faylian => "faylian",
StarKey::Xishen => "xishen",
StarKey::Bingfu => "bingfu",
StarKey::Dahao => "dahao",
StarKey::Suipo => "suipo",
StarKey::Fubing => "fubing",
StarKey::Guanfu => "guanfu",
StarKey::Suijian => "suijian",
StarKey::Huiqi => "huiqi",
StarKey::Sangmen => "sangmen",
StarKey::Guansuo => "guansuo",
StarKey::Gwanfu => "gwanfu",
StarKey::Longde => "longde",
StarKey::Baihu => "baihu",
StarKey::Tiande => "tiande",
StarKey::Diaoke => "diaoke",
StarKey::Jiangxing => "jiangxing",
StarKey::Panan => "panan",
StarKey::Suiyi => "suiyi",
StarKey::Xiishen => "xiishen",
StarKey::Huagai => "huagai",
StarKey::Jiesha => "jiesha",
StarKey::Zhaisha => "zhaisha",
StarKey::Tiansha => "tiansha",
StarKey::Zhibei => "zhibei",
StarKey::Xianchi => "xianchi",
StarKey::Yuesha => "yuesha",
StarKey::Wangshen => "wangshen",
StarKey::Yunkui => "yunkui",
StarKey::Yunyue => "yunyue",
StarKey::Yunchang => "yunchang",
StarKey::Yunqu => "yunqu",
StarKey::Yunluan => "yunluan",
StarKey::Yunxi => "yunxi",
StarKey::Yunlu => "yunlu",
StarKey::Yunyang => "yunyang",
StarKey::Yuntuo => "yuntuo",
StarKey::Yunma => "yunma",
StarKey::Liukui => "liukui",
StarKey::Liuyue => "liuyue",
StarKey::Liuchang => "liuchang",
StarKey::Liuqu => "liuqu",
StarKey::Liuluan => "liuluan",
StarKey::Liuxi => "liuxi",
StarKey::Liulu => "liulu",
StarKey::Liuyang => "liuyang",
StarKey::Liutuo => "liutuo",
StarKey::Liuma => "liuma",
StarKey::Nianjie => "nianjie",
StarKey::Yuekui => "yuekui",
StarKey::Yueyue => "yueyue",
StarKey::Yuechang => "yuechang",
StarKey::Yuequ => "yuequ",
StarKey::Yueluan => "yueluan",
StarKey::Yuexi => "yuexi",
StarKey::Yuelu => "yuelu",
StarKey::Yueyang => "yueyang",
StarKey::Yuetuo => "yuetuo",
StarKey::Yuema => "yuema",
StarKey::Rikui => "rikui",
StarKey::Riyue => "riyue",
StarKey::Richang => "richang",
StarKey::Riqu => "riqu",
StarKey::Riluan => "riluan",
StarKey::Rixi => "rixi",
StarKey::Rilu => "rilu",
StarKey::Riyang => "riyang",
StarKey::Rituo => "rituo",
StarKey::Rima => "rima",
StarKey::Shikui => "shikui",
StarKey::Shiyue => "shiyue",
StarKey::Shichang => "shichang",
StarKey::Shiqu => "shiqu",
StarKey::Shiluan => "shiluan",
StarKey::Shixi => "shixi",
StarKey::Shilu => "shilu",
StarKey::Shiyang => "shiyang",
StarKey::Shituo => "shituo",
StarKey::Shima => "shima",
}
}
}