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}