// 定义泛型枚举 MaybeValue
enum MaybeValue<T> {
Nothing,
Just(T),
}
// 定义特质 Processable
trait Processable {
fn process(&self) -> i32;
}
// 为 i32 类型实现 Processable 特质
impl Processable for MaybeValue<i32> {
fn process(&self) -> i32 {
match self {
MaybeValue::Nothing => 0,
MaybeValue::Just(x) => *x * 2,
}
}
}
fn main() {
let just_value = MaybeValue::Just(5);
let nothing_value = MaybeValue::Nothing;
let result1 = just_value.process();
let result2 = nothing_value.process();
println!("Just(5) processed: {}", result1);
println!("Nothing processed: {}", result2);
}