boozook / playdate

Playdate Build Tools and API
https://mastodon.gamedev.place/@pd
MIT License
133 stars 8 forks source link

LCDColorIs should be const_trait #401

Open github-actions[bot] opened 1 month ago

github-actions[bot] commented 1 month ago

LCDColorIs should be const_trait https://github.com/boozook/playdate/blob/ea28ed41c07083271ac5dfac6a3b96c7d254ed78/api/color/src/lib.rs#L116

Source of this issue ```rust fn XOR() -> Self { LCDSolidColor::kColorXOR } } pub trait LCDColorConst { const WHITE: Self; const BLACK: Self; const CLEAR: Self; const XOR: Self; } impl LCDColorConst for LCDColor { const WHITE: Self = LCDSolidColor::kColorWhite as Self; const BLACK: Self = LCDSolidColor::kColorBlack as Self; const CLEAR: Self = LCDSolidColor::kColorClear as Self; const XOR: Self = LCDSolidColor::kColorXOR as Self; } impl LCDColorConst for LCDSolidColor { const WHITE: Self = LCDSolidColor::kColorWhite as Self; const BLACK: Self = LCDSolidColor::kColorBlack as Self; const CLEAR: Self = LCDSolidColor::kColorClear as Self; const XOR: Self = LCDSolidColor::kColorXOR as Self; } // TODO: LCDColorIs should be const_trait pub trait LCDColorIs { fn is_solid(&self) -> bool; fn is_pattern(&self) -> bool; } impl LCDColorIs for LCDColor { fn is_solid(&self) -> bool { let color = *self as usize; color >= LCDSolidColor::kColorBlack as _ && color <= LCDSolidColor::kColorXOR as _ ```