# enumset
[![Latest Version](https://img.shields.io/crates/v/enumset.svg)](https://crates.io/crates/enumset)
-![Requires rustc 1.30+](https://img.shields.io/badge/rustc-1.30+-red.svg)
+![Requires rustc 1.31+](https://img.shields.io/badge/rustc-1.31+-red.svg)
[![Rust Documentation](https://img.shields.io/badge/api-rustdoc-blue.svg)](https://docs.rs/enumset)
A library for defining enums that can be used in compact bit sets.
name = "enumset"
version = "0.4.0"
authors = ["Lymia Aluysia <lymia@lymiahugs.com>"]
+edition = "2018"
description = "A library for creating compact sets of enums."
keywords = ["enum", "bitset"]
//! assert_eq!(set, Enum::A | Enum::E | Enum::G);
//! ```
-extern crate enumset_derive;
-extern crate num_traits;
-#[cfg(feature = "serde")] extern crate serde2 as serde;
-
pub use enumset_derive::*;
-mod enumset { pub use super::*; }
use core::cmp::Ordering;
use core::fmt;
use core::fmt::{Debug, Formatter};
use core::hash::{Hash, Hasher};
use core::ops::*;
+use serde2 as serde;
use num_traits::*;
pub extern crate core;
/// A reexport of serde so there is no requirement to depend on serde.
- #[cfg(feature = "serde")] pub extern crate serde2 as serde;
+ #[cfg(feature = "serde")] pub use serde2 as serde;
}
mod private {
}
}
impl <T : EnumSetType + Debug> Debug for EnumSet<T> {
- fn fmt(&self, f: &mut Formatter) -> fmt::Result {
+ fn fmt(&self, f: &mut Formatter<'_>) -> fmt::Result {
let mut is_first = true;
f.write_str("EnumSet(")?;
for v in self.iter() {
#![allow(dead_code)]
-extern crate enumset;
use enumset::*;
#[derive(EnumSetType, Debug)]
#![cfg(feature = "serde")]
#![allow(dead_code)]
-extern crate enumset;
-extern crate serde2 as serde;
-extern crate serde_derive;
-extern crate bincode;
-extern crate serde_json;
-
use enumset::*;
use serde_derive::*;
#[derive(Serialize, Deserialize, EnumSetType, Debug)]
#[enumset(serialize_as_list)]
-#[serde(crate="serde")]
+#[serde(crate="serde2")]
pub enum ListEnum {
A, B, C, D, E, F, G, H,
}
-#[derive(::EnumSetType, Debug)]
+#[derive(EnumSetType, Debug)]
#[enumset(serialize_repr = "u128")]
pub enum ReprEnum {
A, B, C, D, E, F, G, H,
}
-#[derive(::EnumSetType, Debug)]
+#[derive(EnumSetType, Debug)]
#[enumset(serialize_repr = "u128", serialize_deny_unknown)]
pub enum DenyUnknownEnum {
A, B, C, D, E, F, G, H,
name = "enumset_derive"
version = "0.4.0"
authors = ["Lymia Aluysia <lymia@lymiahugs.com>"]
+edition = "2018"
description = "An internal helper crate for enumset."
#![recursion_limit="256"]
#![cfg_attr(feature = "nightly", feature(proc_macro_diagnostic))]
-extern crate darling;
-extern crate syn;
extern crate proc_macro;
-extern crate proc_macro2;
-extern crate quote;
use darling::*;
use proc_macro::TokenStream;
quote! {
if value & !#all_variants != 0 {
use #serde::de::Error;
- let unexpected = serde::de::Unexpected::Unsigned(value as u64);
+ let unexpected = #serde::de::Unexpected::Unsigned(value as u64);
return #core::prelude::v1::Err(
D::Error::custom("enumset contains unknown bits")
)