Estou tentando fazer isso usando a etherparse
biblioteca:
match deserialized_packet.payload_ether_type() {
Some(payload_type) => match payload_type {
EtherType::Arp as u16 => {
},
_ => continue
},
None => continue,
}
mas Rust não parece gostar muito disso, pois recebo este erro: '!', '(', ')', ',', '::', '{' or '|' expected, got 'as'
. Como posso lançar o Arp para um u16 na declaração de correspondência?
A propósito, funciona para usar ether_type::Arp
porque é definido como uma constante em vez de um valor em uma enumeração, mas a documentação diz que a enumeração EtherType pode ser convertida para um u16 e acho mais limpo usar a enumeração em vez de uma constante .