enum_bitset/
example.rs

1//! Example to demonstrate the `EnumBitset` derive macro.
2//!
3//! NOTE: This example is *not* available to crates depending on `enum_bitset`.
4//!
5use enum_bitset_derive::EnumBitset;
6
7/// Example enum to demonstrate the `EnumBitset` derive macro.
8///
9/// NOTE: This example is *not* available to crates depending on `enum_bitset`.
10#[derive(EnumBitset, Clone, Copy, PartialEq)]
11#[bitset(crate = crate)]
12pub enum ProgrammerState {
13    Awake,
14    CoffeeAcquired,
15    CompilerFight,
16    MergeConflict,
17    ZoneAchieved,
18    BuildingCastlesInTheCloud,
19    TimeToLeave,
20    SideProject,
21    Sleeping,
22}
23
24
25#[cfg(all(feature = "serde", any(doc, test)))]
26mod serde_impl {
27    // "Implement" serde traits manually, so we don't need to add the `derive` feature in our serde dependence to compile docs.
28    use serde::{Deserialize, Deserializer, Serialize, Serializer};
29
30    use super::ProgrammerState;
31
32
33    impl Serialize for ProgrammerState {
34        fn serialize<S>(&self, _: S) -> Result<S::Ok, S::Error>
35        where
36            S: Serializer,
37        {
38            unimplemented!()
39        }
40    }
41
42
43    #[automatically_derived]
44    impl<'de> Deserialize<'de> for ProgrammerState {
45        fn deserialize<D>(_: D) -> Result<Self, D::Error>
46        where
47            D: Deserializer<'de>,
48        {
49            unimplemented!()
50        }
51    }
52}