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;