ephemeris_release/
account.rs1use std::fmt;
4
5use facet::Facet;
6
7#[derive(Clone, Copy, Debug, Eq, PartialEq)]
9pub enum Field {
10 Login,
12 Name,
14 Email,
16}
17
18impl fmt::Display for Field {
19 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
20 f.write_str(match self {
21 Self::Login => "login",
22 Self::Name => "name",
23 Self::Email => "email",
24 })
25 }
26}
27
28#[derive(Clone, Debug, Eq, Facet, PartialEq)]
33#[facet(deny_unknown_fields)]
34pub struct Account<V> {
35 #[facet(default)]
37 pub login: Option<V>,
38 pub name: V,
40 pub email: V,
42}
43
44impl Account<String> {
45 #[must_use]
47 pub fn author(&self) -> Author<'_> {
48 Author {
49 name: &self.name,
50 email: &self.email,
51 }
52 }
53}
54
55#[derive(Clone, Copy, Debug, Eq, PartialEq)]
57pub struct Author<'a> {
58 pub name: &'a str,
60 pub email: &'a str,
62}