aldrin_core/
channel_end.rs1use num_enum::{IntoPrimitive, TryFromPrimitive};
2
3#[derive(Debug, Copy, Clone, PartialEq, Eq, IntoPrimitive, TryFromPrimitive)]
5#[cfg_attr(feature = "fuzzing", derive(arbitrary::Arbitrary))]
6#[repr(u8)]
7pub enum ChannelEnd {
8 Sender = 0,
10
11 Receiver = 1,
13}
14
15impl ChannelEnd {
16 pub fn other(self) -> Self {
28 match self {
29 Self::Sender => Self::Receiver,
30 Self::Receiver => Self::Sender,
31 }
32 }
33}
34
35impl From<ChannelEndWithCapacity> for ChannelEnd {
36 fn from(value: ChannelEndWithCapacity) -> Self {
37 match value {
38 ChannelEndWithCapacity::Sender => Self::Sender,
39 ChannelEndWithCapacity::Receiver(_) => Self::Receiver,
40 }
41 }
42}
43
44#[derive(Debug, Copy, Clone, PartialEq, Eq)]
46#[cfg_attr(feature = "fuzzing", derive(arbitrary::Arbitrary))]
47pub enum ChannelEndWithCapacity {
48 Sender,
50
51 Receiver(u32),
53}