1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use std::sync::Arc;
use tls_api::TlsConnector;
use solicit::HttpScheme;
pub enum ClientTlsOption<C : TlsConnector> {
Plain,
Tls(String, Arc<C>),
}
impl<C : TlsConnector> Clone for ClientTlsOption<C> {
fn clone(&self) -> Self {
match self {
&ClientTlsOption::Plain => ClientTlsOption::Plain,
&ClientTlsOption::Tls(ref d, ref c) => ClientTlsOption::Tls(d.clone(), c.clone()),
}
}
}
impl<C : TlsConnector> ClientTlsOption<C> {
pub fn http_scheme(&self) -> HttpScheme {
match self {
&ClientTlsOption::Plain => HttpScheme::Http,
&ClientTlsOption::Tls(..) => HttpScheme::Https,
}
}
}