blob: 76f8ab390fa8dff2935f5d25be5fac3d54a4ccc9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
use std;
use types;
#[derive(Eq, PartialEq, Debug)]
pub enum Color {
ColorDefault,
ColorIdx(u8),
ColorRgb(u8, u8, u8),
}
impl Color {
pub fn new(color_impl: &types::ColorImpl) -> Color {
let &types::ColorImpl(color_repr) = color_impl;
let bytes: [u8; 4] = unsafe { std::mem::transmute(color_repr) };
match bytes[3] {
0 => Color::ColorDefault,
1 => Color::ColorIdx(bytes[0]),
2 => Color::ColorRgb(bytes[0], bytes[1], bytes[2]),
_ => panic!("invalid color type"),
}
}
}
|