use serde::{Deserialize, Serialize}; bitflags::bitflags! { #[derive(Serialize, Deserialize)] pub struct Extensions: usize { const UNWRAP_NEWTYPES = 0x1; const IMPLICIT_SOME = 0x2; const UNWRAP_VARIANT_NEWTYPES = 0x4; } } impl Extensions { /// Creates an extension flag from an ident. pub fn from_ident(ident: &[u8]) -> Option { match ident { b"unwrap_newtypes" => Some(Extensions::UNWRAP_NEWTYPES), b"implicit_some" => Some(Extensions::IMPLICIT_SOME), b"unwrap_variant_newtypes" => Some(Extensions::UNWRAP_VARIANT_NEWTYPES), _ => None, } } } impl Default for Extensions { fn default() -> Self { Extensions::empty() } }