我正在尝试使用库来做到这一点etherparse
:
match deserialized_packet.payload_ether_type() {
Some(payload_type) => match payload_type {
EtherType::Arp as u16 => {
},
_ => continue
},
None => continue,
}
但 Rust 似乎不太喜欢这样,因为我收到了这个错误:'!', '(', ')', ',', '::', '{' or '|' expected, got 'as'
。如何在比赛声明中将 Arp 投射到 u16?
顺便说一句,它可以使用ether_type::Arp
,因为它被定义为常量而不是枚举中的值,但文档说 EtherType 枚举可以转换为 u16,我认为使用枚举而不是常量看起来更干净。