Rename xmpp client field from "inner" to "client"
[?]
Dec 31, 2018, 5:44 PM
5IKA4GO7DIMBBYB7OUF5S7N2LUWIZ5MKCCCTZCAYPZI2357MVFHACDependencies
- [2]
AYQZ2UIAUpdate deps - [3]
IK3YDPTYUpdate deps - [4]
PVCRPP3BSome servers don't send to in initial presence - [5]
H7R7Y3FQUse new processing code to wait online - [6]
QWE26TMVupdate deps - [7]
3GEU7TC7Welcome to 2018! - [8]
4LRBIGVTShow info about xmpp errors - [9]
5OBTKGDLUpdate deps - [10]
L77O4T7MFormatting and fixes - [11]
VS6AHRWIMove XMPP to separate dir - [12]
MAC6WCSXFix pipelines - [13]
ZI4GJ72VAdd message to xmpp command - [14]
BTOZT4JPUse failure - [15]
FV6BJ5K6Send self-presence and store account info in Rc so it willbe used in some future in parallel - [16]
O2GM5J4FDon't split xmpp receiving and sending - [17]
5A5UVGNMMove receiver closing logic out of xmpp processing - [18]
QYY3KRGLUse failure instead Box<dyn Error> - [19]
AGIW6YR3Use shared future for signal everywhere - [20]
PBRUH4BJRename optional XmppConnection to MaybeXmppConnection - [21]
PFC7OJQFQuery roster - [22]
TDOR5XQUAccept destination - [23]
OGMBXBKPMove online to XmppConnection - [24]
V5HDBSZMUse jid for receiver address - [25]
X6L47BHQUse different structure for established xmpp connection - [26]
EOHEZXX3Move request processing to structure - [27]
HU3NZX5ZProcess self-presence via new processing code - [28]
6E5IC33ZTry to test 2018 edition - [29]
FVVPKFTLInitial commit - [30]
HKSQO7JZEnable hyper http server and configuration - [31]
NDDQQP2PUpdate deps - [32]
XGP44R5HRework stopping xmpp connection
Change contents
- edit in src/xmpp/stanzas.rs at line 2
use xmpp_parsers::iq::Iq; - edit in src/xmpp/stanzas.rs at line 4
use xmpp_parsers::roster::Roster; - edit in src/xmpp/stanzas.rs at line 14[3.419]
pub fn make_get_roster(id: &str) -> Element {let mut get_roster = Iq::from_get(Roster {ver: None,items: vec![],});get_roster.id = Some(id.to_string());get_roster.into()} - edit in src/xmpp/mod.rs at line 9
const ID_GET_ROSTER: &str = "id_get_roster0";pub struct MaybeXmppConnection {account: std::rc::Rc<config::Account>,client: Option<Client>,} - replacement in src/xmpp/mod.rs at line 19
inner: Option<(stream::SplitSink<Client>, stream::SplitStream<Client>)>,client: Client,}impl From<XmppConnection> for MaybeXmppConnection {fn from(from: XmppConnection) -> MaybeXmppConnection {MaybeXmppConnection {account: from.account,client: Some(from.client),}} - replacement in src/xmpp/mod.rs at line 31
impl XmppConnection {fn new(account: config::Account) -> XmppConnection {XmppConnection {impl MaybeXmppConnection {fn new(account: config::Account) -> MaybeXmppConnection {MaybeXmppConnection { - replacement in src/xmpp/mod.rs at line 35
inner: None,client: None, - replacement in src/xmpp/mod.rs at line 40
/// Error shoud be !fn connect<E: 'static>(self) -> impl Future<Item = Self, Error = E> {/// don't connect if stop_future resolvedfn connect<F>(self,stop_future: F,) -> impl Future<Item = XmppConnection, Error = failure::Error>whereF: future::Future + Clone + 'static,<F as hyper::rt::Future>::Error: Into<failure::Error> + Send,{ - replacement in src/xmpp/mod.rs at line 50
let XmppConnection { account, inner } = self;let MaybeXmppConnection { account, client } = self; - replacement in src/xmpp/mod.rs at line 52[3.745]→[3.745:782](∅→∅),[3.745]→[3.745:782](∅→∅),[3.745]→[3.745:782](∅→∅),[3.745]→[3.745:782](∅→∅),[3.745]→[3.745:782](∅→∅),[3.745]→[3.745:782](∅→∅),[3.745]→[3.745:782](∅→∅),[3.782]→[2.338:500](∅→∅)
if let Some(inner) = inner {Box::new(future::ok(XmppConnection {account,inner: Some(inner),})) as Box<Future<Item = _, Error = E>>if let Some(client) = client {Box::new(future::ok(XmppConnection { account, client }))as Box<Future<Item = _, Error = _>> - replacement in src/xmpp/mod.rs at line 56
Box::new(future::loop_fn(account, |account| {info!("xmpp initialization...");let mut res_client = Client::new(&account.jid, &account.password);while let Err(e) = res_client {error!("Cann't init xmpp client: {}", e);res_client = Client::new(&account.jid, &account.password);}let client = res_client.expect("Cann't init xmpp client");info!("xmpp initialized");Box::new(stop_future.clone().select2(future::loop_fn(account, move |account| {info!("xmpp initialization...");let res_client = Client::new(&account.jid, &account.password);match res_client {Err(_e) => Box::new(future::ok(future::Loop::Continue(account)))as Box<Future<Item = _, Error = _>>,Ok(client) => {info!("xmpp initialized"); - replacement in src/xmpp/mod.rs at line 69
// future to wait for onlineSelf::online(client.split(), account).and_then(Self::self_presence)let stop_future2 = stop_future.clone();let stop_future3 = stop_future.clone();// future to wait for onlineBox::new(XmppConnection { client, account }.processing(XmppConnection::online, stop_future.clone()).map(|(conn, _)| conn).map_err(|(acc, _)| acc).and_then(|conn| conn.initial_roster(stop_future2)).and_then(|conn| conn.self_presence(stop_future3)).then(|r| match r {Ok(conn) => future::ok(future::Loop::Break(conn)),Err(acc) => future::ok(future::Loop::Continue(acc)),}),)}}}).map_err(|_: ()| ()),) - replacement in src/xmpp/mod.rs at line 91
Ok(conn) => future::ok(future::Loop::Break(conn)),Err(acc) => future::ok(future::Loop::Continue(acc)),})}))Ok(Either::A((_x, _b))) => future::err(format_err!("Stop XMMP connection")),Ok(Either::B((x, _a))) => future::ok(x),Err(Either::A((e, _b))) => future::err(e.into()),Err(Either::B((_, _a))) => {future::err(format_err!("Cann't initiate XMPP connection"))}}),) - edit in src/xmpp/mod.rs at line 101
} - replacement in src/xmpp/mod.rs at line 103[3.2998]→[2.1360:2085](∅→∅),[2.2085]→[3.3955:3996](∅→∅),[3.2085]→[3.3955:3996](∅→∅),[3.4611]→[3.3955:3996](∅→∅),[3.3955]→[3.3955:3996](∅→∅),[3.3996]→[2.2086:2179](∅→∅)
/// get connection and wait for online status and set presence/// returns error if something went wrongfn online((sink, stream): (stream::SplitSink<Client>, stream::SplitStream<Client>),account: std::rc::Rc<config::Account>,) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>> {Box::new(future::loop_fn((sink, stream, account),|(sink, stream, account)| {stream.into_future().then(|r| match r {Ok((event, stream)) => match event {Some(Event::Online) => {info!("Online");future::ok(future::Loop::Break(XmppConnection {account,inner: Some((sink, stream)),}))impl XmppConnection {/// base XMPP processingfn xmpp_processing(&mut self, event: &Event) {info!("Incoming xmpp event: {:?}", event);}/// process event from xmpp stream/// returns from future when condition met/// or stop future was resolvedfn processing<S, F, T, E>(self,stop_condition: S,stop_future: F,) -> impl Future<Item = (Self, Result<Either<F, T>, failure::Error>),Error = (std::rc::Rc<config::Account>,Result<Either<F, T>, failure::Error>,),>whereF: Future<Item = T, Error = E>,E: Into<failure::Error>,S: FnMut(&mut Self, Event) -> Result<bool, failure::Error>,{future::loop_fn((self, stop_future, stop_condition),|(xmpp, stop_future, mut stop_condition)| {let XmppConnection { client, account } = xmpp;client.into_future().select2(stop_future).then(|r| match r {Ok(Either::A(((event, client), b))) => {if let Some(event) = event {let mut xmpp = XmppConnection { client, account };xmpp.xmpp_processing(&event);match stop_condition(&mut xmpp, event) {Ok(true) => {future::ok(future::Loop::Break((xmpp, Ok(Either::A(b)))))}Ok(false) => {future::ok(future::Loop::Continue((xmpp, b, stop_condition)))}Err(e) => future::err((xmpp.account, Err(e))),}} else {future::err((account, Ok(Either::A(b)))) - replacement in src/xmpp/mod.rs at line 149
Some(Event::Stanza(s)) => {info!("xmpp stanza: {:?}", s);future::ok(future::Loop::Continue((sink, stream, account)))}Ok(Either::B((t, a))) => {if let Some(client) = a.into_inner() {future::ok(future::Loop::Break((XmppConnection { client, account },Ok(Either::B(t)),)))} else {future::err((account, Ok(Either::B(t)))) - replacement in src/xmpp/mod.rs at line 159
_ => {warn!("Disconnected");future::err(account)}Err(Either::A((_e, b))) => future::err((account, Ok(Either::A(b)))),Err(Either::B((e, a))) => {if let Some(client) = a.into_inner() {future::ok(future::Loop::Break((XmppConnection { client, account },Err(e.into()),)))} else {future::err((account, Err(e.into()))) - edit in src/xmpp/mod.rs at line 170
},Err((e, _)) => {error!("xmpp receive error: {}", e);future::err(account) - replacement in src/xmpp/mod.rs at line 173
))) - replacement in src/xmpp/mod.rs at line 176
fn self_presence(self) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>> {let XmppConnection { account, inner } = self;if let Some((sink, stream)) = inner {use tokio::prelude::Sink;/// get connection and wait for online status and set presence/// returns error if something went wrongfn online(&mut self, event: Event) -> Result<bool, failure::Error> {match event {Event::Online => {info!("Online!");Ok(true)}Event::Stanza(s) => {warn!("Stanza before online: {:?}", s);Ok(false)}_ => {error!("Disconnected while online");Err(format_err!("Disconnected while online"))}}} - replacement in src/xmpp/mod.rs at line 195
let presence = stanzas::make_presence(&account);info!("Sending presence...");Box::new(sink.send(presence).map_err(|e| {error!("Error on send self-presence: {}", e);"Cann't send self-presence".to_owned()}).join(future::loop_fn((account.clone(), stream), |(account, stream)| {stream.into_future().map_err(|(e, _)| {error!("Error on reading self-presence: {}", e);"Cann't read self-presence".to_owned()}).and_then(|(event, stream)| match event {Some(event) => {if let tokio_xmpp::Event::Stanza(e) = event {info!("Get stanza: {:?}", e);if e.name() == "presence"&& e.attr("from").map_or(false, |f| f == account.jid)&& e.attr("to").map_or(false, |f| f == account.jid){info!("Self presence");future::ok(future::Loop::Break(stream))} else {future::ok(future::Loop::Continue((account, stream,)))fn process_initial_roster(&mut self, event: Event) -> Result<bool, failure::Error> {if let Event::Stanza(s) = event {use try_from::TryInto;match s.try_into() as Result<xmpp_parsers::iq::Iq, _> {Ok(iq) => {if let Some(id) = iq.id {if id == ID_GET_ROSTER {match iq.payload {xmpp_parsers::iq::IqType::Error(_e) => {Err(format_err!("Get error instead of roster"))}xmpp_parsers::iq::IqType::Result(Some(result)) => {match result.try_into()as Result<xmpp_parsers::roster::Roster, _>{Ok(roster) => {info!("Got roster:");for i in roster.items {info!(" >>> {:?}", i); - replacement in src/xmpp/mod.rs at line 215
} else {future::err("Got wrong event".to_owned())Ok(true) - edit in src/xmpp/mod.rs at line 217
Err(e) => Err(format_err!("Cann't parse roster: {}", e)), - replacement in src/xmpp/mod.rs at line 219
None => future::err("Got closed stream".to_owned()),})}).map_err(|e| format!("waiting self-presence: {}", e)),).then(|r| match r {Err(e) => {error!("Self-presence waiting error: {}", e);future::err(account)}_ => Err(format_err!("Unknown result of roster")),}} else {Ok(false) - replacement in src/xmpp/mod.rs at line 225
Ok(inner) => future::ok(XmppConnection {account,inner: Some(inner),}),}),)} else {Err(format_err!("Iq stanza without id"))}}Err(_e) => Ok(false),} - replacement in src/xmpp/mod.rs at line 232
warn!("Don't gen connection on self-presence");Box::new(future::err(account)) as Box<Future<Item = _, Error = _>>Err(format_err!("Wrong event while waiting roster")) - edit in src/xmpp/mod.rs at line 234
}fn initial_roster<F, E>(self,stop_future: F,) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>>whereF: Future<Error = E>,E: Into<failure::Error>,{let XmppConnection { account, client } = self;use tokio::prelude::Sink;let get_roster = stanzas::make_get_roster(ID_GET_ROSTER);let account2 = account.clone();info!("Quering roster... {:?}", get_roster);client.send(get_roster).map_err(move |e| {error!("Error on querying roster: {}", e);(account2, Err(failure::SyncFailure::new(e).into()))}).and_then(move |client| {XmppConnection { client, account }.processing(XmppConnection::process_initial_roster, stop_future)}).then(|r| match r {Err((account, e)) => {error!("Cann't wait roster: {}",e.err().map_or_else(|| std::borrow::Cow::Borrowed("None"),|e| e.to_string().into()));future::err(account)}Ok((conn, _)) => future::ok(conn),}) - edit in src/xmpp/mod.rs at line 275
fn self_presence<F, E>(self,stop_future: F,) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>>whereF: Future<Error = E>,E: Into<failure::Error>,{let XmppConnection { account, client } = self;use tokio::prelude::Sink;let presence = stanzas::make_presence(&account);let account2 = account.clone();info!("Sending presence... {:?}", presence);client.send(presence).map_err(|e| {error!("Error on send self-presence: {}", e);(account2, Err(failure::SyncFailure::new(e).into()))}).and_then(move |client| {XmppConnection { client, account }.processing(move |conn, event| {if let Event::Stanza(s) = event {if s.name() == "presence"&& s.attr("from").map_or(false, |f| f == conn.account.jid)&& s.attr("to").map_or(false, |f| f == conn.account.jid){Ok(true)} else {Ok(false)}} else {Err(format_err!("Wrong event while waiting self-presence"))}},stop_future,)}).then(|r| match r {Err((account, _e)) => {error!("Cann't wait self-presence");future::err(account)}Ok((conn, _)) => future::ok(conn),})} - replacement in src/xmpp/mod.rs at line 332
conn: XmppConnection,conn: MaybeXmppConnection, - replacement in src/xmpp/mod.rs at line 336
fn new(cmd_recv: S, signal: F, conn: XmppConnection) -> XmppState<F, S> {fn new(cmd_recv: S, signal: F, conn: MaybeXmppConnection) -> XmppState<F, S> { - replacement in src/xmpp/mod.rs at line 351
F: future::Future<Item = ()> + 'static,F: future::Future + Clone + 'static,<F as hyper::rt::Future>::Error: std::fmt::Display + Into<failure::Error> + Send, - replacement in src/xmpp/mod.rs at line 355
let signal = signal.map_err(|_| format_err!("Wrong shutdown signal"));let conn = XmppConnection::new(account);let conn = MaybeXmppConnection::new(account); - replacement in src/xmpp/mod.rs at line 363
signal.select2(conn.connect().and_then(|conn| {conn.connect(signal.clone()).and_then(|conn| { - replacement in src/xmpp/mod.rs at line 372
.map(|f| (f, conn))})).map(|(cmd, cmd_recv)| (cmd, cmd_recv, conn))}) - replacement in src/xmpp/mod.rs at line 376[3.5146]→[2.6146:6841](∅→∅),[2.6841]→[3.6239:6261](∅→∅),[3.6779]→[3.6239:6261](∅→∅),[3.6239]→[3.6239:6261](∅→∅),[3.6261]→[2.6842:7148](∅→∅)
Ok(Either::A((_x, b))) => {info!("Got signal");// got signal, breaksBox::new(b.map(|b| future::Loop::Break((Some((b.0).1), b.1))))as Box<Future<Item = _, Error = _>>}Ok(Either::B((x, a))) => {info!("Got cmd");// got cmd, continueBox::new(future::ok(future::Loop::Continue(XmppState::new((x.0).1,a,x.1,)))) as Box<Future<Item = _, Error = _>>}Err(Either::A((e, b))) => {// got signal error, breakserror!("Signal error: {}", e);Box::new(b.map(|b| future::Loop::Break((Some((b.0).1), b.1))))as Box<Future<Item = _, Error = _>>Ok((cmd, cmd_recv, conn)) => {if let Some(_cmd) = cmd {info!("Got cmd");// got cmd, continuefuture::ok(future::Loop::Continue(XmppState::new(cmd_recv,signal,conn.into(),)))} else {future::ok(future::Loop::Break((None, conn.into())))} - replacement in src/xmpp/mod.rs at line 389
Err(Either::B((e, _a))) => {Err(e) => { - replacement in src/xmpp/mod.rs at line 392
Box::new(future::err(format_err!("Cmd error")))as Box<Future<Item = _, Error = _>>future::err(e) - replacement in src/xmpp/mod.rs at line 397
.and_then(|(opt_cmd_recv, _conn): (Option<S>, XmppConnection)| {.and_then(|(opt_cmd_recv, _conn): (Option<S>, MaybeXmppConnection)| { - replacement in src/xmpp/mod.rs at line 407
Box::new(future::err(format_err!("cmd receiver gone")))Box::new(future::ok(())) - replacement in src/main.rs at line 63
.map_err(|e| error!("Cann't get CTRL+C signal: {}", e.0)).map_err(|e| {error!("Cann't get CTRL+C signal: {}", e.0);e.0}) - replacement in src/main.rs at line 100
let result = ctrt.block_on(xmpp_process(ctrl_c.clone().map(|_| ()),recv,config.account,));let result = ctrt.block_on(xmpp_process(ctrl_c.clone(), recv, config.account)); - edit in Cargo.toml at line 23
try_from = "=0.2.2" # dependency of xmpp-parsers - edit in Cargo.lock at line 0
[[package]]name = "MacTypes-sys"version = "1.3.0"source = "registry+https://github.com/rust-lang/crates.io-index"dependencies = ["libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",] - replacement in Cargo.lock at line 5
"memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 18
version = "0.3.7"version = "0.3.6" - replacement in Cargo.lock at line 28
version = "0.4.10"version = "0.4.8" - replacement in Cargo.lock at line 39
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 43[3.8136]→[3.8314:8327](∅→∅),[3.5506]→[3.8314:8327](∅→∅),[3.8314]→[3.8314:8327](∅→∅),[3.8327]→[3.10275:10375](∅→∅)
[[package]]name = "autocfg"version = "0.1.1"source = "registry+https://github.com/rust-lang/crates.io-index" - replacement in Cargo.lock at line 49
"backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)","backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 53
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)","rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 60
version = "0.3.13"version = "0.3.9" - replacement in Cargo.lock at line 63
"autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)","backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)","backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 65
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)","rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 72
version = "0.1.28"version = "0.1.24" - replacement in Cargo.lock at line 75
"cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 138
version = "1.0.28"version = "1.0.25" - replacement in Cargo.lock at line 153
"time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)","time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 189
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 197
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 202
version = "0.6.3"version = "0.6.2" - replacement in Cargo.lock at line 205
"crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 211
version = "0.7.0"version = "0.6.1" - replacement in Cargo.lock at line 214
"arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)","arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 216
"crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 224
version = "0.6.3"version = "0.6.1" - replacement in Cargo.lock at line 268
version = "0.8.13"version = "0.8.12" - replacement in Cargo.lock at line 282
"regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)","regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 299
"backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)","backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 307
"backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)","backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 318
"syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)","syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 379
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 412
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 441
version = "0.12.19"version = "0.12.17" - replacement in Cargo.lock at line 454
"time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)","time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 485
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 542
version = "0.2.45"version = "0.2.44" - replacement in Cargo.lock at line 582
version = "0.7.5"version = "0.7.3" - replacement in Cargo.lock at line 587
"serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)","serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)","serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 592
"tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)","tendril 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 602
version = "2.1.2"version = "2.1.1" - replacement in Cargo.lock at line 606
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 635
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 649
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 670
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 672
"openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)","openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 674
"openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)","openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 677
"security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)","security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 687
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 719
version = "1.9.0"version = "1.8.0" - replacement in Cargo.lock at line 722
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 727
version = "0.10.16"version = "0.10.15" - replacement in Cargo.lock at line 734
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)","openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 745
version = "0.9.40"version = "0.9.39" - replacement in Cargo.lock at line 748
"cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 776
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 779
"smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 850
"encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)","encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 853
"memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 875
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 886
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 898
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 966
version = "0.1.44"version = "0.1.43" - replacement in Cargo.lock at line 974
"redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)","redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 979
version = "1.1.0"version = "1.0.6" - replacement in Cargo.lock at line 983
"memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)","regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)","regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 991
version = "0.6.4"version = "0.6.3" - replacement in Cargo.lock at line 1016
version = "0.1.11"version = "0.1.9" - replacement in Cargo.lock at line 1043
"openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)","openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1067
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)","security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1073
version = "0.2.2"version = "0.2.1" - edit in Cargo.lock at line 1076
"MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1077
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1100
"hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)","hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1103
"serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1108
"tokio-xmpp 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)","tokio-xmpp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 1110
"try_from 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1116
version = "1.0.83"version = "1.0.80" - replacement in Cargo.lock at line 1121
version = "1.0.83"version = "1.0.80" - replacement in Cargo.lock at line 1126
"syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)","syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1131
version = "1.0.34"version = "1.0.33" - replacement in Cargo.lock at line 1136
"serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1174
version = "0.1.7"version = "0.1.6" - replacement in Cargo.lock at line 1177
"arc-swap 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","arc-swap 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1193
version = "0.6.7"version = "0.6.6" - replacement in Cargo.lock at line 1205
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)","redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1229
"serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1268
version = "0.15.23"version = "0.15.22" - replacement in Cargo.lock at line 1291
"syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)","syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1301
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1303
"redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)","redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1310
version = "0.4.1"version = "0.4.0" - replacement in Cargo.lock at line 1331
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)","redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1354
version = "0.1.41"version = "0.1.40" - replacement in Cargo.lock at line 1357
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)","redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1370
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1444
"crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1449
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1462
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1465
"signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)","signal-hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1490
"crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1494
"num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1504
"crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1542
"libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1553
version = "0.2.1"version = "0.2.0" - replacement in Cargo.lock at line 1581
"serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1596
"smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1620
"smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1814
"markup5ever 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)","time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)","markup5ever 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)","time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 1836
"checksum MacTypes-sys 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7dbbe033994ae2198a18517c7132d952a29fb1db44249a1234779da7c50f4698" - replacement in Cargo.lock at line 1838
"checksum arc-swap 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1025aeae2b664ca0ea726a89d574fe8f4e77dd712d443236ad1de00379450cf6""checksum arc-swap 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "5c5ed110e2537bdd3f5b9091707a8a5556a72ac49bbd7302ae0b28fdccb3246c" - replacement in Cargo.lock at line 1840
"checksum arrayvec 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "92c7fb76bc8826a8b33b4ee5bb07a247a81e76764ab4d55e8f73e3a4d8808c71""checksum arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f405cc4c21cd8b784f6c8fc2adf9bc00f59558f0049b5ec21517f875963040cc" - edit in Cargo.lock at line 1842
"checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727" - replacement in Cargo.lock at line 1843
"checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5""checksum backtrace-sys 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "797c830ac25ccc92a7f8a7b9862bde440715531514594a6154e3d4a54dd769b6""checksum backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "89a47830402e9981c5c41223151efcced65a0510c13097c769cede7efb34782a""checksum backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)" = "c66d56ac8dabd07f6aacdaf633f4b8262f5b3601a810a0dcddffd5c22c69daa0" - replacement in Cargo.lock at line 1853
"checksum cc 1.0.28 (registry+https://github.com/rust-lang/crates.io-index)" = "bb4a8b715cb4597106ea87c7c84b2f1d452c7492033765df7f32651e66fcf749""checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16" - replacement in Cargo.lock at line 1861
"checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13""checksum crossbeam-epoch 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f10a4f8f409aaac4b16a5474fb233624238fcdeefb9ba50d5ea059aab63ba31c""checksum crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "41ee4864f4797060e52044376f7d107429ce1fb43460021b126424b7180ee21a""checksum crossbeam-deque 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4fe1b6f945f824c7a25afe44f62e25d714c0cc523f8e99d8db5cd1026e1269d3""checksum crossbeam-epoch 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2449aaa4ec7ef96e5fb24db16024b935df718e9ae1cec0a1e68feeca2efca7b8""checksum crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c55913cc2799171a550e307918c0a360e8c16004820291bf3b638969b4a01816" - replacement in Cargo.lock at line 1868
"checksum encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1a8fa54e6689eb2549c4efed8d00d7f3b2b994a064555b0e8df4ae3764bcc4be""checksum encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ca20350a7cb5aab5b9034731123d6d412caf3e92d4985e739e411ba0955fd0eb" - replacement in Cargo.lock at line 1889
"checksum hyper 0.12.19 (registry+https://github.com/rust-lang/crates.io-index)" = "f1ebec079129e43af5e234ef36ee3d7e6085687d145b7ea653b262d16c6b65f1""checksum hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c49a75385d35ff5e9202755f09beb0b878a05c4c363fcc52b23eeb5dcb6782cc" - replacement in Cargo.lock at line 1900
"checksum libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "2d2857ec59fadc0773853c664d2d18e7198e83883e7060b63c924cb077bd5c74""checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311" - replacement in Cargo.lock at line 1906
"checksum markup5ever 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "897636f9850c3eef4905a5540683ed53dc9393860f0846cab2c2ddf9939862ff""checksum markup5ever 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a87c4100d614080c8ab43334fb028ebe387f273fb61ed4ff0eae9189b94b6be8" - replacement in Cargo.lock at line 1908
"checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9""checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16" - replacement in Cargo.lock at line 1920
"checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238""checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9""checksum num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c51a3322e4bca9d212ad9a158a02abc6934d005490c054a2778df73a70aa0a30""checksum openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)" = "5e1309181cdcbdb51bc3b6bedb33dfac2a83b3d585033d3f6d9e22e8c1928613" - replacement in Cargo.lock at line 1923
"checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6""checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106" - replacement in Cargo.lock at line 1949
"checksum redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "a84bcd297b87a545980a2d25a0beb72a1f490c31f0a9fde52fca35bfbb1ceb70""checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d" - replacement in Cargo.lock at line 1951
"checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f""checksum regex-syntax 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "4e47a2ed29da7a9e1960e1639e7a982e6edc6d49be308a3b02daf511504a16d1""checksum regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ee84f70c8c08744ea9641a731c7fadb475bf2ecc52d7f627feb833e0b3990467""checksum regex-syntax 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fbc557aac2b708fe84121caf261346cc2eed71978024337e42eb46b8a252ac6e" - replacement in Cargo.lock at line 1955
"checksum rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "01b90379b8664dd83460d59bdc5dd1fd3172b8913788db483ed1325171eab2f7""checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395" - replacement in Cargo.lock at line 1963
"checksum security-framework-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "40d95f3d7da09612affe897f320d78264f0d2320f3e8eea27d12bd1bd94445e2""checksum security-framework-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab01dfbe5756785b5b4d46e0289e5a18071dfa9a7c2b24213ea00b9ef9b665bf" - replacement in Cargo.lock at line 1966
"checksum serde 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)" = "157e12af46859e968da75dea9845530e13d03bcab2009a41b9b7bb3cf4eb3ec2""checksum serde_derive 1.0.83 (registry+https://github.com/rust-lang/crates.io-index)" = "9469829702497daf2daf3c190e130c3fa72f719920f73c86160d43e8f8d76951""checksum serde_json 1.0.34 (registry+https://github.com/rust-lang/crates.io-index)" = "bdf540260cfee6da923831f4776ddc495ada940c30117977c70f1313a6130545""checksum serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "15c141fc7027dd265a47c090bf864cf62b42c4d228bbcf4e51a0c9e2b0d3f7ef""checksum serde_derive 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)" = "225de307c6302bec3898c51ca302fc94a7a1697ef0845fcee6448f33c032249c""checksum serde_json 1.0.33 (registry+https://github.com/rust-lang/crates.io-index)" = "c37ccd6be3ed1fdf419ee848f7c758eb31b054d7cd3ae3600e3bae0adf569811" - replacement in Cargo.lock at line 1972
"checksum signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1f272d1b7586bec132ed427f532dd418d8beca1ca7f2caf7df35569b1415a4b4""checksum signal-hook 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8941ae94fa73d0f73b422774b3a40a7195cecd88d1c090f4b37ade7dc795ab66" - replacement in Cargo.lock at line 1975
"checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db""checksum smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "622df2d454c29a4d89b30dc3b27b42d7d90d6b9e587dbf8f67652eb7514da484" - replacement in Cargo.lock at line 1984
"checksum syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc""checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7" - replacement in Cargo.lock at line 1988
"checksum tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b""checksum tendril 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9de21546595a0873061940d994bbbc5c35f024ae4fd61ec5c5b159115684f508" - replacement in Cargo.lock at line 1993
"checksum time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c""checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b" - replacement in Cargo.lock at line 2009
"checksum tokio-xmpp 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f6583920d10a72bd1605adec50f5efb298e0ba5dcad1ff987560675a7280013b""checksum tokio-xmpp 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c27385c4781afc851c61ac66d79463c511bf073d3a5d71b8bfd13a816e475989"