Mercurial > crates > nonstick
comparison src/libpam/memory.rs @ 185:fb8b547b36b7
Banish al(most al)l use of `i32` in favor of `c_int`.
author | Paul Fisher <paul@pfish.zone> |
---|---|
date | Thu, 31 Jul 2025 14:45:38 -0400 |
parents | a1bb1d013567 |
children | 5e4ea9650f87 |
comparison
equal
deleted
inserted
replaced
184:42f747774d94 | 185:fb8b547b36b7 |
---|---|
11 | 11 |
12 /// Like the num_enum crate, but with no dependency on `syn`. | 12 /// Like the num_enum crate, but with no dependency on `syn`. |
13 macro_rules! num_enum { | 13 macro_rules! num_enum { |
14 ( | 14 ( |
15 $(#[$m:meta])* | 15 $(#[$m:meta])* |
16 $viz:vis enum $name:ident($repr:ty) { | 16 $viz:vis enum $name:ident { |
17 $( | 17 $( |
18 $(#[$im:meta])* | 18 $(#[$im:meta])* |
19 $item_name:ident = $item_value:path, | 19 $item_name:ident = $item_value:path, |
20 )* | 20 )* |
21 } | 21 } |
22 ) => { | 22 ) => { |
23 // This is the one place where we depend upon c_int being i32. | |
24 // Ideally, we would be able to say `repr(c_int)` but we can't. | |
23 $(#[$m])* | 25 $(#[$m])* |
24 #[derive(Clone, Copy, Debug, Eq, PartialEq)] | 26 #[derive(Clone, Copy, Debug, Eq, PartialEq)] |
25 #[repr($repr)] | 27 #[repr(i32)] |
26 $viz enum $name { | 28 $viz enum $name { |
27 $( | 29 $( |
28 $(#[$im])* | 30 $(#[$im])* |
29 $item_name = $item_value, | 31 $item_name = $item_value, |
30 )* | 32 )* |
31 } | 33 } |
32 | 34 |
33 impl TryFrom<$repr> for $name { | 35 impl TryFrom<c_int> for $name { |
34 type Error = crate::constants::ErrorCode; | 36 type Error = crate::constants::ErrorCode; |
35 | 37 |
36 #[allow(unused_doc_comments)] | 38 #[allow(unused_doc_comments)] |
37 fn try_from(value: $repr) -> crate::constants::Result<$name> { | 39 fn try_from(value: c_int) -> crate::constants::Result<$name> { |
38 match value { | 40 match value { |
39 $( | 41 $( |
40 $(#[$im])* | 42 $(#[$im])* |
41 $item_value => Ok(Self::$item_name), | 43 $item_value => Ok(Self::$item_name), |
42 )* | 44 )* |
43 _ => Err(crate::constants::ErrorCode::BAD_CONST), | 45 _ => Err(crate::constants::ErrorCode::BAD_CONST), |
44 } | 46 } |
45 } | 47 } |
46 } | 48 } |
47 | 49 |
48 impl From<$name> for $repr { | 50 impl From<$name> for c_int { |
49 fn from(value: $name) -> $repr { | 51 fn from(value: $name) -> c_int { |
50 value as $repr | 52 value as c_int |
51 } | 53 } |
52 } | 54 } |
53 } | 55 } |
54 } | 56 } |
55 | 57 |