Avoid cloning UserID packets.

This commit is contained in:
Justus Winter 2019-03-07 13:04:15 +01:00
parent 8631b4f02e
commit 908d139d01
No known key found for this signature in database
GPG Key ID: 686F55B4AB2B3386
3 changed files with 7 additions and 7 deletions

View File

@ -94,7 +94,7 @@ impl Verify {
created: time::now().to_timespec().sec,
packets: cur.into_inner().into(),
fpr: fpr,
email: Email::try_from(uid.clone())?,
email: Email::try_from(uid)?,
})
}
}
@ -354,7 +354,7 @@ pub trait Database: Sync + Send {
// update verify tokens
for uid in tpk.userids() {
let email = if let Ok(m) = Email::try_from(uid.userid().clone()) {
let email = if let Ok(m) = Email::try_from(uid.userid()) {
m
} else {
// Ignore non-UTF8 userids.
@ -524,7 +524,7 @@ pub trait Database: Sync + Send {
let emails = tpk
.userids()
.filter_map(|uid| {
Email::try_from(uid.userid().clone()).ok()
Email::try_from(uid.userid()).ok()
})
.collect::<Vec<_>>();
@ -566,7 +566,7 @@ pub trait Database: Sync + Send {
for uid in tpk.userids() {
self.unlink_email(
&Email::try_from(uid.userid().clone())?,
&Email::try_from(uid.userid())?,
&fpr,
)?;
}

View File

@ -15,10 +15,10 @@ impl Email {
}
}
impl TryFrom<UserID> for Email {
impl TryFrom<&UserID> for Email {
type Error = Error;
fn try_from(uid: UserID) -> Result<Self> {
fn try_from(uid: &UserID) -> Result<Self> {
Self::from_str(&String::from_utf8(uid.userid().into())?)
}
}

View File

@ -76,7 +76,7 @@ fn delete(db: &Filesystem, query: &Query, all_bindings: bool, mut all: bool)
for uidb in tpk.userids() {
results.push(
(uidb.userid().to_string(),
db.unlink_email(&uidb.userid().clone().try_into()?, &fp)));
db.unlink_email(&uidb.userid().try_into()?, &fp)));
}
} else {
if let Query::ByEmail(ref email) = query {