【发布时间】:2023-02-22 13:09:09
【问题描述】:
你能解释一下生锈错误吗?
pub trait OrderEvent {}
#[derive(Debug)]
pub struct OrderCreatedEvent {
pub order_id: String,
}
impl OrderEvent for OrderCreatedEvent {}
pub fn handle_create<E: OrderEvent>(_state: OrderState, command: CreateOrderCommand) -> Vec<E> {
let events = vec![OrderCreatedEvent {
order_id: command.order_id,
}];
events
}
铁锈告诉我:
mismatched types [E0308] expected type parameter `E`,
found struct `OrderCreatedEvent` Note: expected struct `Vec<E>` found struct `Vec<OrderCreatedEvent>`
Event 实现了 OrderEvent 特性并且它是特性绑定的。为什么不允许这样做?
【问题讨论】:
标签: rust