Move request processing to structure

[?]
Dec 18, 2018, 11:39 AM
EOHEZXX3TBKGJTOMXEPAPHLAJSATRXNY4AIL63BE4VG3HFNWARVQC

Dependencies

  • [2] NDDQQP2P Update deps
  • [3] FVVPKFTL Initial commit
  • [4] FV6BJ5K6 Send self-presence and store account info in Rc so it willbe used in some future in parallel
  • [5] QWE26TMV update deps
  • [6] 5A5UVGNM Move receiver closing logic out of xmpp processing
  • [7] TDOR5XQU Accept destination
  • [8] VS6AHRWI Move XMPP to separate dir
  • [9] X6L47BHQ Use different structure for established xmpp connection

Change contents

  • replacement in src/xmpp/mod.rs at line 157
    [3.60][3.379:403]()
    pub struct XmppCommand;
    [3.60]
    [3.3816]
    pub struct XmppCommand {
    pub xmpp_to: String,
    }
  • edit in src/main.rs at line 22
    [3.3921][3.3921:3953]()
    use hyper::service::service_fn;
  • replacement in src/main.rs at line 27
    [3.4066][3.4066:4092]()
    use tokio::prelude::Sink;
    [3.4066]
    [3.4092]
    use tokio::prelude::{Future, Sink};
  • edit in src/main.rs at line 37
    [3.4260]
    [3.4260]
    struct ServiceCmd {
    cmd_send: tokio_channel::mpsc::Sender<XmppCommand>,
    }
    impl hyper::service::Service for ServiceCmd {
    type ReqBody = Body;
    type ResBody = Body;
    type Error = hyper::http::Error;
    type Future = Box<dyn Future<Item = Response<Self::ResBody>, Error = Self::Error> + Send>;
    fn call(&mut self, req: Request<Self::ReqBody>) -> Self::Future {
    let xmpp_to_opt = req.headers().get("X-XMPP-To");
    let xmpp_to_res: Result<String, std::borrow::Cow<str>> = xmpp_to_opt.map_or_else(
    || Err("none".into()),
    |xmpp_to| {
    xmpp_to.to_str().map(|x| x.to_owned()).map_err(|e| {
    format!("\"{}\" {}", String::from_utf8_lossy(xmpp_to.as_bytes()), e).into()
    })
    },
    );
  • edit in src/main.rs at line 59
    [3.4261]
    [3.18]
    match xmpp_to_res {
    Err(err) => {
    warn!("Unknown destination: {}", err);
    Box::new(tokio::prelude::future::result(
    Response::builder()
    .status(hyper::StatusCode::BAD_REQUEST)
    .body(Body::from(format!("Unknown destination: {}", err))),
    )) as Box<Future<Item = _, Error = _> + Send>
    }
    Ok(xmpp_to) => {
    info!("Got request");
    Box::new(
    self.cmd_send
    .clone()
    .send(XmppCommand { xmpp_to })
    .then(|r| match r {
    Ok(_) => {
    tokio::prelude::future::ok(Response::new(Body::from("Accepted")))
    }
    Err(e) => {
    error!("Command sent error: {}", e);
    tokio::prelude::future::result(
    Response::builder()
    .status(hyper::StatusCode::BAD_REQUEST)
    .body(Body::from(format!("Command sent error: {}", e))),
    )
    }
    }),
    ) as Box<Future<Item = _, Error = _> + Send>
    }
    }
    }
    }
    struct MakeServiceCmd {
    cmd_send: tokio_channel::mpsc::Sender<XmppCommand>,
    }
    impl<Ctx> hyper::service::MakeService<Ctx> for MakeServiceCmd {
    type ReqBody = Body;
    type ResBody = Body;
    type Error = hyper::http::Error;
    type Service = ServiceCmd;
    type Future = tokio::prelude::future::FutureResult<ServiceCmd, Self::Error>;
    type MakeError = hyper::http::Error;
    fn make_service(&mut self, _ctx: Ctx) -> Self::Future {
    tokio::prelude::future::ok(ServiceCmd {
    cmd_send: self.cmd_send.clone(),
    })
    }
    }
  • replacement in src/main.rs at line 142
    [3.5155][3.5155:5935]()
    .serve(move || {
    let cmd_send = cmd_send.clone();
    service_fn(move |_req: Request<Body>| {
    info!("Got request");
    cmd_send.clone().send(XmppCommand {}).then(|r| match r {
    Ok(_) => tokio::prelude::future::ok(Response::new(Body::from("Accepted"))),
    Err(e) => {
    error!("Command sent error: {}", e);
    tokio::prelude::future::result(
    Response::builder()
    .status(hyper::StatusCode::BAD_REQUEST)
    .body(Body::from(format!("Command sent error: {}", e))),
    )
    }
    })
    })
    })
    [3.5155]
    [3.5935]
    .serve(MakeServiceCmd { cmd_send })
  • replacement in Cargo.lock at line 5
    [3.7247][2.5227:5300]()
    "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.7247]
    [3.7320]
    "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 28
    [3.7789][2.5301:5319]()
    version = "0.4.9"
    [3.7789]
    [3.7807]
    version = "0.4.8"
  • replacement in Cargo.lock at line 39
    [3.8093][2.5320:5392]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.8093]
    [3.8165]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 43
    [3.8314][2.5393:5506]()
    [[package]]
    name = "autocfg"
    version = "0.1.1"
    source = "registry+https://github.com/rust-lang/crates.io-index"
  • replacement in Cargo.lock at line 49
    [3.8446][2.5507:5588]()
    "backtrace-sys 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.8446]
    [3.8527]
    "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 53
    [3.8757][2.5589:5743]()
    "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)",
    [3.8757]
    [3.8910]
    "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
    [3.9017][2.5744:5763]()
    version = "0.3.13"
    [3.9017]
    [3.9035]
    version = "0.3.9"
  • replacement in Cargo.lock at line 63
    [3.9117][2.5764:5919]()
    "autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
    "backtrace-sys 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.9117]
    [3.9198]
    "backtrace-sys 0.1.24 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 65
    [3.9271][2.5920:6074]()
    "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)",
    [3.9271]
    [3.9424]
    "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
    [3.9535][2.6075:6094]()
    version = "0.1.26"
    [3.9535]
    [3.9554]
    version = "0.1.24"
  • replacement in Cargo.lock at line 75
    [3.9636][2.6095:6237]()
    "cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.9636]
    [3.9778]
    "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
    [3.11467][2.6238:6257]()
    version = "1.0.26"
    [3.11467]
    [3.11486]
    version = "1.0.25"
  • replacement in Cargo.lock at line 153
    [3.11948][2.6258:6330]()
    "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.11948]
    [3.12020]
    "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 189
    [3.13233][2.6331:6403]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13233]
    [3.13305]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 197
    [3.13449][2.6404:6476]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13449]
    [3.13521]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 202
    [3.13561][2.6477:6495]()
    version = "0.6.3"
    [3.13561]
    [3.13579]
    version = "0.6.2"
  • replacement in Cargo.lock at line 205
    [3.13661][2.6496:6660]()
    "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)",
    [3.13661]
    [3.13825]
    "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
    [3.13865][2.6661:6679]()
    version = "0.7.0"
    [3.13865]
    [3.13883]
    version = "0.6.1"
  • replacement in Cargo.lock at line 214
    [3.13965][2.6680:6755]()
    "arrayvec 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13965]
    [3.14040]
    "arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 216
    [3.14113][2.6756:6838]()
    "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.14113]
    [3.14195]
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 224
    [3.14466][2.6839:6857]()
    version = "0.6.3"
    [3.14466]
    [3.14484]
    version = "0.6.1"
  • replacement in Cargo.lock at line 268
    [3.15825][2.6858:6877]()
    version = "0.8.13"
    [3.15825]
    [3.15844]
    version = "0.8.12"
  • replacement in Cargo.lock at line 282
    [3.16352][2.6878:6950]()
    "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16352]
    [3.16424]
    "regex 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 299
    [3.16849][2.6951:7028]()
    "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16849]
    [3.16925]
    "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 307
    [3.17057][2.7029:7106]()
    "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.17057]
    [3.17133]
    "backtrace 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 318
    [3.17505][2.7107:7179]()
    "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.17505]
    [3.17577]
    "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 379
    [3.19271][2.7180:7255]()
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.19271]
    [3.19346]
    "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 412
    [3.20551][2.7256:7328]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.20551]
    [3.20623]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 441
    [3.21397][2.7329:7349]()
    version = "0.12.18"
    [3.21397]
    [3.21417]
    version = "0.12.17"
  • replacement in Cargo.lock at line 454
    [3.22231][2.7350:7422]()
    "time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.22231]
    [3.22303]
    "time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 485
    [3.23535][2.7423:7495]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.23535]
    [3.23607]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 542
    [3.25316][2.7496:7515]()
    version = "0.2.45"
    [3.25316]
    [3.25335]
    version = "0.2.44"
  • replacement in Cargo.lock at line 582
    [3.26368][2.7516:7534]()
    version = "0.7.5"
    [3.26368]
    [3.26386]
    version = "0.7.3"
  • replacement in Cargo.lock at line 587
    [3.26618][2.7535:7688]()
    "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
    "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.26618]
    [3.26771]
    "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 592
    [3.27015][2.7689:7763]()
    "tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.27015]
    [3.27089]
    "tendril 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 602
    [3.27233][2.7764:7782]()
    version = "2.1.2"
    [3.27233]
    [3.27251]
    version = "2.1.1"
  • replacement in Cargo.lock at line 606
    [3.27406][2.7783:7855]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.27406]
    [3.27478]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 635
    [3.28558][2.7856:7928]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.28558]
    [3.28630]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 649
    [3.29191][2.7929:8001]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.29191]
    [3.29263]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 670
    [3.29977][2.8002:8074]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.29977]
    [3.30049]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 672
    [3.30119][2.8075:8151]()
    "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30119]
    [3.30195]
    "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 674
    [3.30275][2.8152:8231]()
    "openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30275]
    [3.30354]
    "openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 687
    [3.30882][2.8232:8304]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30882]
    [3.30954]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 719
    [3.31727][2.8305:8323]()
    version = "1.9.0"
    [3.31727]
    [3.31745]
    version = "1.8.0"
  • replacement in Cargo.lock at line 722
    [3.31827][2.8324:8396]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.31827]
    [3.31899]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 727
    [3.31931][2.8397:8417]()
    version = "0.10.16"
    [3.31931]
    [3.31951]
    version = "0.10.15"
  • replacement in Cargo.lock at line 734
    [3.32339][2.8418:8569]()
    "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)",
    [3.32339]
    [3.32490]
    "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
    [3.32645][2.8570:8589]()
    version = "0.9.40"
    [3.32645]
    [3.32664]
    version = "0.9.39"
  • replacement in Cargo.lock at line 748
    [3.32746][2.8590:8732]()
    "cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.32746]
    [3.32888]
    "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
    [3.33693][2.8733:8805]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33693]
    [3.33765]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 779
    [3.33916][2.8806:8881]()
    "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33916]
    [3.33991]
    "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 850
    [3.35895][2.8882:8961]()
    "encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.35895]
    [3.35974]
    "encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 853
    [3.36118][2.8962:9035]()
    "memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.36118]
    [3.36191]
    "memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 875
    [3.36723][2.9036:9108]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.36723]
    [3.36795]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 886
    [3.37153][2.9109:9181]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.37153]
    [3.37225]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 898
    [3.37648][2.9182:9254]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.37648]
    [3.37720]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 966
    [3.39910][2.9255:9274]()
    version = "0.1.44"
    [3.39910]
    [3.39929]
    version = "0.1.43"
  • replacement in Cargo.lock at line 974
    [3.40130][2.9275:9356]()
    "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.40130]
    [3.40211]
    "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 979
    [3.40241][2.9357:9375]()
    version = "1.1.0"
    [3.40241]
    [3.40259]
    version = "1.0.6"
  • replacement in Cargo.lock at line 983
    [3.40420][2.9376:9528]()
    "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)",
    [3.40420]
    [3.40572]
    "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
    [3.40766][2.9529:9547]()
    version = "0.6.4"
    [3.40766]
    [3.40784]
    version = "0.6.3"
  • replacement in Cargo.lock at line 1016
    [3.41481][2.9548:9567]()
    version = "0.1.11"
    [3.41481]
    [3.41499]
    version = "0.1.9"
  • replacement in Cargo.lock at line 1043
    [3.42197][2.9568:9644]()
    "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42197]
    [3.42273]
    "openssl 0.10.15 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1067
    [3.42985][2.9645:9717]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42985]
    [3.43057]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1077
    [3.43379][2.9718:9790]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43379]
    [3.43451]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1100
    [3.44055][2.9791:9865]()
    "hyper 0.12.18 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.44055]
    [3.44129]
    "hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1103
    [3.44273][2.9866:10019]()
    "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
    "serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.44273]
    [3.44426]
    "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 1115
    [3.44917][2.10020:10039]()
    version = "1.0.82"
    [3.44917]
    [3.44936]
    version = "1.0.80"
  • replacement in Cargo.lock at line 1120
    [3.45036][2.10040:10059]()
    version = "1.0.82"
    [3.45036]
    [3.45055]
    version = "1.0.80"
  • replacement in Cargo.lock at line 1125
    [3.45289][2.10060:10132]()
    "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.45289]
    [3.45361]
    "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1135
    [3.45638][2.10133:10206]()
    "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.45638]
    [3.45711]
    "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1177
    [3.47222][2.10207:10279]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.47222]
    [3.47294]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1192
    [3.47552][2.10280:10298]()
    version = "0.6.7"
    [3.47552]
    [3.47570]
    version = "0.6.6"
  • replacement in Cargo.lock at line 1204
    [3.47935][2.10299:10452]()
    "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)",
    [3.47935]
    [3.48088]
    "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 1228
    [3.48861][2.10453:10526]()
    "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.48861]
    [3.48934]
    "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1267
    [3.50268][2.10527:10547]()
    version = "0.15.23"
    [3.50268]
    [3.50288]
    version = "0.15.22"
  • replacement in Cargo.lock at line 1290
    [3.51099][2.10548:10620]()
    "syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.51099]
    [3.51171]
    "syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1300
    [3.51455][2.10621:10693]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.51455]
    [3.51527]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1302
    [3.51598][2.10694:10775]()
    "redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.51598]
    [3.51679]
    "redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1309
    [3.51865][2.10776:10794]()
    version = "0.4.1"
    [3.51865]
    [3.51883]
    version = "0.4.0"
  • replacement in Cargo.lock at line 1330
    [3.52519][2.10795:10948]()
    "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)",
    [3.52519]
    [3.52672]
    "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 1353
    [3.53210][2.10949:10968]()
    version = "0.1.41"
    [3.53210]
    [3.53229]
    version = "0.1.40"
  • replacement in Cargo.lock at line 1356
    [3.53311][2.10969:11122]()
    "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)",
    [3.53311]
    [3.53464]
    "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 1369
    [3.53887][2.11123:11198]()
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.53887]
    [3.53962]
    "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1443
    [3.56756][2.11199:11281]()
    "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.56756]
    [3.56838]
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1448
    [3.57132][2.11282:11357]()
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57132]
    [3.57207]
    "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1461
    [3.57725][2.11358:11430]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57725]
    [3.57797]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1489
    [3.59052][2.11431:11595]()
    "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)",
    [3.59052]
    [3.59216]
    "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 1493
    [3.59361][2.11596:11671]()
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.59361]
    [3.59436]
    "num_cpus 1.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1503
    [3.59724][2.11672:11754]()
    "crossbeam-utils 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.59724]
    [3.59806]
    "crossbeam-utils 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1541
    [3.61406][2.11755:11827]()
    "libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.61406]
    [3.61478]
    "libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1580
    [3.63560][2.11828:11901]()
    "serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.63560]
    [3.63633]
    "serde 1.0.80 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1595
    [3.64293][2.11902:11977]()
    "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.64293]
    [3.64368]
    "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1619
    [3.65726][2.11978:12053]()
    "smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.65726]
    [3.65801]
    "smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1813
    [3.71090][2.12054:12204]()
    "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)",
    [3.71090]
    [3.71240]
    "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)",
  • replacement in Cargo.lock at line 1839
    [3.72727][2.12205:12356]()
    "checksum arrayvec 0.4.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d18513977c2d8261c448511c5c53dc66b26dfccbc3d4446672dea1e71a7d8a26"
    [3.72727]
    [3.72878]
    "checksum arrayvec 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "f405cc4c21cd8b784f6c8fc2adf9bc00f59558f0049b5ec21517f875963040cc"
  • edit in Cargo.lock at line 1841
    [3.73026][2.12357:12507]()
    "checksum autocfg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4e5f34df7a019573fb8bdc7e24a2bfebe51a2a1d6bfdbaeccedb3c41fc574727"
  • replacement in Cargo.lock at line 1842
    [3.73178][2.12508:12818]()
    "checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5"
    "checksum backtrace-sys 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "3fcce89e5ad5c8949caa9434501f7b55415b3e7ad5270cb88c75a8d35e8f1279"
    [3.73178]
    [3.73487]
    "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 1852
    [3.74692][2.12819:12965]()
    "checksum cc 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "389803e36973d242e7fecb092b2de44a3d35ac62524b3b9339e51d577d668e02"
    [3.74692]
    [3.74838]
    "checksum cc 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "f159dfd43363c4d08055a07703eb7a3406b0dac4d0584d96965a3262db3c9d16"
  • replacement in Cargo.lock at line 1860
    [3.75914][2.12966:13440]()
    "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"
    [3.75914]
    [3.76388]
    "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 1867
    [3.76999][2.13441:13596]()
    "checksum encoding_rs 0.8.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1a8fa54e6689eb2549c4efed8d00d7f3b2b994a064555b0e8df4ae3764bcc4be"
    [3.76999]
    [3.77154]
    "checksum encoding_rs 0.8.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ca20350a7cb5aab5b9034731123d6d412caf3e92d4985e739e411ba0955fd0eb"
  • replacement in Cargo.lock at line 1888
    [3.80218][2.13597:13747]()
    "checksum hyper 0.12.18 (registry+https://github.com/rust-lang/crates.io-index)" = "8dd7729fc83d88353415f6816fd4bb00897aa47c7f1506b69060e74e6e3d8e8b"
    [3.80218]
    [3.80368]
    "checksum hyper 0.12.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c49a75385d35ff5e9202755f09beb0b878a05c4c363fcc52b23eeb5dcb6782cc"
  • replacement in Cargo.lock at line 1899
    [3.81867][2.13748:13896]()
    "checksum libc 0.2.45 (registry+https://github.com/rust-lang/crates.io-index)" = "2d2857ec59fadc0773853c664d2d18e7198e83883e7060b63c924cb077bd5c74"
    [3.81867]
    [3.82015]
    "checksum libc 0.2.44 (registry+https://github.com/rust-lang/crates.io-index)" = "10923947f84a519a45c8fefb7dd1b3e8c08747993381adee176d7a82b4195311"
  • replacement in Cargo.lock at line 1905
    [3.82768][2.13897:14051]()
    "checksum markup5ever 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "897636f9850c3eef4905a5540683ed53dc9393860f0846cab2c2ddf9939862ff"
    [3.82768]
    [3.82922]
    "checksum markup5ever 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a87c4100d614080c8ab43334fb028ebe387f273fb61ed4ff0eae9189b94b6be8"
  • replacement in Cargo.lock at line 1907
    [3.83072][2.14052:14201]()
    "checksum memchr 2.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "db4c41318937f6e76648f42826b1d9ade5c09cafb5aef7e351240a70f39206e9"
    [3.83072]
    [3.83221]
    "checksum memchr 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0a3eb002f0535929f1199681417029ebea04aadc0c7a4224b46be99c7f5d6a16"
  • replacement in Cargo.lock at line 1919
    [3.84890][2.14202:14505]()
    "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"
    [3.84890]
    [3.85193]
    "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 1922
    [3.85349][2.14506:14661]()
    "checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6"
    [3.85349]
    [3.85504]
    "checksum openssl-sys 0.9.39 (registry+https://github.com/rust-lang/crates.io-index)" = "278c1ad40a89aa1e741a1eed089a2f60b18fab8089c3139b542140fc7d674106"
  • replacement in Cargo.lock at line 1948
    [3.89324][2.14662:14819]()
    "checksum redox_syscall 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "a84bcd297b87a545980a2d25a0beb72a1f490c31f0a9fde52fca35bfbb1ceb70"
    [3.89324]
    [3.89481]
    "checksum redox_syscall 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "679da7508e9a6390aeaf7fbd02a800fdc64b73fe2204dd2c8ae66d22d9d5ad5d"
  • replacement in Cargo.lock at line 1950
    [3.89637][2.14820:15123]()
    "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"
    [3.89637]
    [3.89940]
    "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 1954
    [3.90251][2.15124:15282]()
    "checksum rustc-demangle 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "01b90379b8664dd83460d59bdc5dd1fd3172b8913788db483ed1325171eab2f7"
    [3.90251]
    [3.90408]
    "checksum rustc-demangle 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "bcfe5b13211b4d78e5c2cadfebd7769197d95c639c35a50057eb4c05de811395"
  • replacement in Cargo.lock at line 1965
    [3.91943][2.15283:15588]()
    "checksum serde 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "6fa52f19aee12441d5ad11c9a00459122bd8f98707cadf9778c540674f1935b6"
    "checksum serde_derive 1.0.82 (registry+https://github.com/rust-lang/crates.io-index)" = "96a7f9496ac65a2db5929afa087b54f8fc5008dcfbe48a8874ed20049b0d6154"
    [3.91943]
    [3.92248]
    "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"
  • replacement in Cargo.lock at line 1974
    [3.93297][2.15589:15740]()
    "checksum smallvec 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b73ea3738b47563803ef814925e69be00799a8c07420be8b996f8e98fb2336db"
    [3.93297]
    [3.93448]
    "checksum smallvec 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "622df2d454c29a4d89b30dc3b27b42d7d90d6b9e587dbf8f67652eb7514da484"
  • replacement in Cargo.lock at line 1983
    [3.94685][2.15741:15889]()
    "checksum syn 0.15.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9545a6a093a3f0bd59adb472700acc08cad3776f860f16a897dfce8c88721cbc"
    [3.94685]
    [3.94833]
    "checksum syn 0.15.22 (registry+https://github.com/rust-lang/crates.io-index)" = "ae8b29eb5210bc5cf63ed6149cbf9adfc82ac0be023d8735c176ee74a2db4da7"
  • replacement in Cargo.lock at line 1987
    [3.95289][2.15890:16040]()
    "checksum tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b"
    [3.95289]
    [3.95439]
    "checksum tendril 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9de21546595a0873061940d994bbbc5c35f024ae4fd61ec5c5b159115684f508"
  • replacement in Cargo.lock at line 1992
    [3.96048][2.16041:16189]()
    "checksum time 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "847da467bf0db05882a9e2375934a8a55cffdc9db0d128af1518200260ba1f6c"
    [3.96048]
    [3.96196]
    "checksum time 0.1.40 (registry+https://github.com/rust-lang/crates.io-index)" = "d825be0eb33fda1a7e68012d51e9c7f451dc1a69391e7fdc197060bb8c56667b"