logo_runtime/
colors.rs

1use wasm_bindgen::prelude::*;
2
3#[wasm_bindgen]
4#[derive(Copy, Clone, PartialEq)]
5pub struct LogoColor {
6    pub r: u8,
7    pub g: u8,
8    pub b: u8
9}
10
11static COLORS: &'static [(u8, u8, u8)] = &[
12    (255, 255, 255),
13    (235, 235, 235),
14    (230, 230, 230),
15    (205, 205, 205),
16    (190, 190, 190),
17    (165, 165, 165),
18    (135, 135, 135),
19    (100, 100, 100),
20    (60, 60, 60),
21    (0, 0, 0),
22    (250, 230, 230),
23    (245, 200, 200),
24    (240, 155, 150),
25    (235, 105, 100),
26    (235, 51, 35),
27    (225, 49, 33),
28    (204, 43, 30),
29    (180, 37, 25),
30    (150, 30, 20),
31    (115, 20, 12),
32    (250, 235, 230),
33    (250, 220, 200),
34    (245, 200, 155),
35    (241, 170, 105),
36    (239, 140, 52),
37    (229, 130, 49),
38    (204, 116, 42),
39    (186, 101, 36),
40    (156, 80, 28),
41    (115, 55, 18),
42    (246, 245, 240),
43    (235, 230, 220),
44    (225, 205, 200),
45    (211, 190, 170),
46    (199, 166, 135),
47    (185, 151, 130),
48    (164, 135, 110),
49    (146, 120, 95),
50    (121, 95, 80),
51    (91, 70, 55),
52    (255, 255, 230),
53    (255, 250, 205),
54    (255, 250, 160),
55    (255, 250, 120),
56    (255, 250, 83),
57    (246, 247, 81),
58    (220, 221, 72),
59    (194, 196, 63),
60    (164, 166, 52),
61    (125, 126, 37),
62    (241, 251, 230),
63    (225, 245, 200),
64    (205, 236, 160),
65    (180, 236, 115),
66    (156, 227, 70),
67    (146, 211, 65),
68    (129, 196, 59),
69    (111, 161, 47),
70    (96, 140, 40),
71    (65, 101, 26),
72    (235, 250, 230),
73    (211, 250, 200),
74    (175, 250, 160),
75    (140, 250, 115),
76    (117, 250, 76),
77    (112, 241, 73),
78    (100, 217, 65),
79    (91, 196, 57),
80    (73, 161, 45),
81    (56, 121, 32),
82    (236, 250, 254),
83    (212, 250, 245),
84    (177, 250, 235),
85    (141, 250, 235),
86    (116, 250, 230),
87    (112, 240, 215),
88    (101, 216, 190),
89    (90, 195, 165),
90    (73, 161, 140),
91    (56, 125, 100),
92    (246, 255, 255),
93    (211, 250, 250),
94    (175, 250, 250),
95    (141, 250, 250),
96    (117, 250, 250),
97    (112, 239, 245),
98    (101, 220, 220),
99    (90, 195, 195),
100    (73, 160, 165),
101    (56, 125, 125),
102    (231, 245, 250),
103    (205, 230, 250),
104    (161, 209, 250),
105    (122, 194, 250),
106    (79, 168, 245),
107    (75, 163, 240),
108    (64, 139, 215),
109    (55, 124, 190),
110    (42, 98, 160),
111    (32, 74, 120),
112    (230, 230, 250),
113    (196, 199, 250),
114    (152, 148, 245),
115    (93, 96, 245),
116    (17, 1, 245),
117    (17, 1, 235),
118    (13, 1, 210),
119    (11, 0, 190),
120    (8, 0, 160),
121    (4, 0, 120),
122    (241, 229, 250),
123    (225, 199, 250),
124    (205, 153, 245),
125    (187, 101, 245),
126    (161, 32, 245),
127    (152, 29, 235),
128    (131, 24, 215),
129    (116, 20, 190),
130    (91, 15, 160),
131    (71, 8, 120),
132    (251, 230, 250),
133    (246, 199, 250),
134    (241, 153, 245),
135    (235, 107, 245),
136    (230, 51, 245),
137    (225, 49, 235),
138    (200, 42, 215),
139    (182, 38, 190),
140    (151, 29, 160),
141    (115, 20, 120),
142    (251, 230, 245),
143    (246, 199, 225),
144    (241, 154, 210),
145    (235, 103, 195),
146    (229, 51, 170),
147    (225, 49, 160),
148    (204, 43, 140),
149    (181, 37, 120),
150    (151, 29, 100),
151    (85, 12, 90),
152];
153
154pub fn colors_count() -> i32 {
155    COLORS.len() as i32
156}
157
158pub fn get_color(idx: i32) -> LogoColor {
159    let res = COLORS[idx as usize];
160    LogoColor{r: res.0, g: res.1, b: res.2}
161}