为枚举定义方法 Impl
与C/C++不同, Rust 可以为枚举定义方法. 这个也得益于 Rust 将数据与函数做了彻底的分离.
#[derive(Debug, Default, Clone, Copy, Eq, PartialEq)] pub enum Weekday { #[default] Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday, } impl Weekday { pub const fn is_weekend(self) -> bool { matches!(self, Self::Saturday | Self::Sunday) } } fn main() { let monday = Weekday::Monday; assert!(!monday.is_weekend()); }