bmail/headers/
address.rs

1use std::borrow::Cow;
2
3use crate::{ByteStr, ByteString};
4
5#[derive(Debug, Clone)]
6pub enum Domain<'a> {
7    Name(&'a ByteStr),
8    Literal(ByteString),
9}
10#[derive(Debug, Clone)]
11pub struct AddrSpec<'a> {
12    pub local_part: Cow<'a, ByteStr>,
13    pub domain: Domain<'a>,
14}
15
16#[derive(Debug, Clone)]
17pub struct Mailbox<'a> {
18    pub display_name: Vec<ByteString>,
19    pub addr_spec: AddrSpec<'a>,
20}
21
22#[derive(Debug, Clone)]
23pub struct Group<'a> {
24    pub display_name: Vec<ByteString>,
25    pub mailboxes: Vec<Mailbox<'a>>,
26}
27
28#[derive(Debug, Clone)]
29pub enum Address<'a> {
30    Mailbox(Mailbox<'a>),
31    Group(Group<'a>),
32}