我想这样做。
#[repr(u8)]
pub enum MessageType {
Authentification,
// ...
}
fn main() {
let message_type = MessageType::Authentification;
let binary_representation: u8 = message_type.into();
}
Run Code Online (Sandbox Code Playgroud)
我认为自己有义务亲自实施。
有谁有一个解决方案可以使用表示来转换我的类型。
我认为在不安全的情况下这样做是可能的,但我宁愿不这样做。
对于文化来说,这仍然很有趣。
您必须手动定义每个变体的值,并使用as而不是.into()进行转换,因为Into<u8>不是由 实现的MessageType:
#[repr(u8)]
pub enum MessageType {
Authentication = 1,
// ...
}
fn main() {
let n = MessageType::Authentication as u8;
println!("{}", n);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3492 次 |
| 最近记录: |