git_mailmap/
entry.rs

1use bstr::BStr;
2
3use crate::Entry;
4
5/// Access
6impl<'a> Entry<'a> {
7    /// The name to map to.
8    pub fn new_name(&self) -> Option<&'a BStr> {
9        self.new_name
10    }
11    /// The email map to.
12    pub fn new_email(&self) -> Option<&'a BStr> {
13        self.new_email
14    }
15    /// The name to look for and replace.
16    pub fn old_name(&self) -> Option<&'a BStr> {
17        self.old_name
18    }
19    /// The email to look for and replace.
20    pub fn old_email(&self) -> &'a BStr {
21        self.old_email
22    }
23}
24
25/// Constructors indicating what kind of mapping is created.
26///
27/// Only these combinations of values are valid.
28#[allow(missing_docs)]
29impl<'a> Entry<'a> {
30    pub fn change_name_by_email(proper_name: impl Into<&'a BStr>, commit_email: impl Into<&'a BStr>) -> Self {
31        Entry {
32            new_name: Some(proper_name.into()),
33            old_email: commit_email.into(),
34            ..Default::default()
35        }
36    }
37    pub fn change_email_by_email(proper_email: impl Into<&'a BStr>, commit_email: impl Into<&'a BStr>) -> Self {
38        Entry {
39            new_email: Some(proper_email.into()),
40            old_email: commit_email.into(),
41            ..Default::default()
42        }
43    }
44    pub fn change_name_and_email_by_email(
45        proper_name: impl Into<&'a BStr>,
46        proper_email: impl Into<&'a BStr>,
47        commit_email: impl Into<&'a BStr>,
48    ) -> Self {
49        Entry {
50            new_name: Some(proper_name.into()),
51            new_email: Some(proper_email.into()),
52            old_email: commit_email.into(),
53            ..Default::default()
54        }
55    }
56
57    pub fn change_name_and_email_by_name_and_email(
58        proper_name: impl Into<&'a BStr>,
59        proper_email: impl Into<&'a BStr>,
60        commit_name: impl Into<&'a BStr>,
61        commit_email: impl Into<&'a BStr>,
62    ) -> Self {
63        Entry {
64            new_name: Some(proper_name.into()),
65            new_email: Some(proper_email.into()),
66            old_name: Some(commit_name.into()),
67            old_email: commit_email.into(),
68        }
69    }
70}