// 定义泛型枚举
enum ResultEnum<T, E> {
Ok(T),
Err(E),
}
// 定义trait
trait ProcessResult<T, E> {
fn process(&self, result: ResultEnum<T, E>);
}
// 实现trait
impl<T, E> ProcessResult<T, E> for () {
fn process(&self, result: ResultEnum<T, E>) {
match result {
ResultEnum::Ok(value) => println!("Ok: {:?}", value),
ResultEnum::Err(error) => println!("Err: {:?}", error),
}
}
}
fn main() {
let ok_result = ResultEnum::Ok(42);
let err_result = ResultEnum::Err("Something went wrong");
let processor: &() = &();
processor.process(ok_result);
processor.process(err_result);
}