use alloc::{collections::BTreeSet, string::String};
use crate::{envelope::types::Envelope, flag::types::Flag};
#[derive(Clone, Debug)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[cfg_attr(feature = "serde", serde(rename_all = "kebab-case", tag = "type"))]
pub enum WatchEvent {
EnvelopeAdded { mailbox: String, envelope: Envelope },
EnvelopeRemoved { mailbox: String, id: String },
FlagsAdded {
mailbox: String,
id: String,
flags: BTreeSet<Flag>,
},
FlagsRemoved {
mailbox: String,
id: String,
flags: BTreeSet<Flag>,
},
KeepAlive,
}