| David Tolnay | 64703b4 | 2020-05-10 22:12:33 -0700 | [diff] [blame] | 1 | use proc_macro2::Ident; |
| 2 | |||||
| 3 | #[derive(Copy, Clone, PartialEq)] | ||||
| 4 | pub enum Derive { | ||||
| 5 | Clone, | ||||
| 6 | Copy, | ||||
| 7 | } | ||||
| 8 | |||||
| 9 | impl Derive { | ||||
| 10 | pub fn from(ident: &Ident) -> Option<Self> { | ||||
| 11 | match ident.to_string().as_str() { | ||||
| 12 | "Clone" => Some(Derive::Clone), | ||||
| 13 | "Copy" => Some(Derive::Copy), | ||||
| 14 | _ => None, | ||||
| 15 | } | ||||
| 16 | } | ||||
| 17 | } | ||||
| 18 | |||||
| 19 | impl AsRef<str> for Derive { | ||||
| 20 | fn as_ref(&self) -> &str { | ||||
| 21 | match self { | ||||
| 22 | Derive::Clone => "Clone", | ||||
| 23 | Derive::Copy => "Copy", | ||||
| 24 | } | ||||
| 25 | } | ||||
| 26 | } | ||||