Remove useless clones (#609)

This commit is contained in:
Paolo Barbolini
2021-05-01 18:22:53 +02:00
committed by GitHub
parent 31de9e508b
commit 4586f2ad8a
4 changed files with 10 additions and 22 deletions

View File

@@ -116,11 +116,12 @@ impl TryFrom<&Headers> for Envelope {
// ... else try From
None => match headers.get::<header::From>() {
Some(header::From(a)) => {
let from: Vec<Mailbox> = a.into();
let mut from: Vec<Mailbox> = a.into();
if from.len() > 1 {
return Err(Error::TooManyFrom);
}
Some(from[0].email.clone())
let from = from.pop().expect("From header has 1 Mailbox");
Some(from.email)
}
None => None,
},
@@ -131,9 +132,7 @@ impl TryFrom<&Headers> for Envelope {
mailboxes: Option<Mailboxes>,
) {
if let Some(mailboxes) = mailboxes {
for mailbox in mailboxes.iter() {
addresses.push(mailbox.email.clone());
}
addresses.extend(mailboxes.into_iter().map(|mb| mb.email));
}
}
let mut to = vec![];

View File

@@ -1,9 +1,3 @@
#[cfg(any(
feature = "tokio02-rustls-tls",
feature = "tokio1-rustls-tls",
feature = "async-std1-rustls-tls"
))]
use std::sync::Arc;
use std::{
mem,
net::SocketAddr,
@@ -303,7 +297,7 @@ impl AsyncNetworkStream {
let domain =
DNSNameRef::try_from_ascii_str(&domain).map_err(error::connection)?;
let connector = TlsConnector::from(Arc::new(config));
let connector = TlsConnector::from(config);
let stream = connector
.connect(domain, tcp_stream)
.await
@@ -352,7 +346,7 @@ impl AsyncNetworkStream {
let domain =
DNSNameRef::try_from_ascii_str(&domain).map_err(error::connection)?;
let connector = TlsConnector::from(Arc::new(config));
let connector = TlsConnector::from(config);
let stream = connector
.connect(domain, tcp_stream)
.await
@@ -404,7 +398,7 @@ impl AsyncNetworkStream {
let domain =
DNSNameRef::try_from_ascii_str(&domain).map_err(error::connection)?;
let connector = TlsConnector::from(Arc::new(config));
let connector = TlsConnector::from(config);
let stream = connector
.connect(domain, tcp_stream)
.await

View File

@@ -1,5 +1,3 @@
#[cfg(feature = "rustls-tls")]
use std::sync::Arc;
use std::{
io::{self, Read, Write},
mem,
@@ -155,10 +153,7 @@ impl NetworkStream {
let domain = DNSNameRef::try_from_ascii_str(tls_parameters.domain())
.map_err(error::connection)?;
let stream = StreamOwned::new(
ClientSession::new(&Arc::new(connector.clone()), domain),
tcp_stream,
);
let stream = StreamOwned::new(ClientSession::new(&connector, domain), tcp_stream);
InnerNetworkStream::RustlsTls(stream)
}

View File

@@ -179,7 +179,7 @@ impl TlsParametersBuilder {
tls.root_store.add_server_trust_anchors(&TLS_SERVER_ROOTS);
Ok(TlsParameters {
connector: InnerTlsParameters::RustlsTls(tls),
connector: InnerTlsParameters::RustlsTls(Arc::new(tls)),
domain: self.domain,
})
}
@@ -190,7 +190,7 @@ pub enum InnerTlsParameters {
#[cfg(feature = "native-tls")]
NativeTls(TlsConnector),
#[cfg(feature = "rustls-tls")]
RustlsTls(ClientConfig),
RustlsTls(Arc<ClientConfig>),
}
impl TlsParameters {