rustc_codegen_llvm/macros.rs
1macro_rules! TryFromU32 {
2 derive() (
3 $(#[$meta:meta])*
4 $vis:vis enum $Type:ident {
5 $(
6 $(#[$varmeta:meta])*
7 $Variant:ident $(= $discr:expr)?
8 ),* $(,)?
9 }
10 ) => {
11 impl ::core::convert::TryFrom<u32> for $Type {
12 type Error = u32;
13 #[allow(deprecated)] // Don't warn about deprecated variants.
14 fn try_from(value: u32) -> ::core::result::Result<$Type, Self::Error> {
15 $( if value == const { $Type::$Variant as u32 } { return Ok($Type::$Variant) } )*
16 Err(value)
17 }
18 }
19 }
20}
21
22pub(crate) use TryFromU32;