Simplify xmpp incoming stanzas processing without futures
[?]
Jan 2, 2019, 1:48 PM
XOAM22TTB4TTPABSG753EQWIADXB43ZEW6LKS64P6NWRETLDUONQCDependencies
- [2]
DKXSFTDYSend stanzas via send queue - [3]
3ADA5BBXAdd items to roster from iq of "set" type - [4]
FWJDW3G5Allow process xmpp incoming stanzas with futures - [5]
QTCUURXNAdd additional requirement for command stream - [6]
UMTLHH77Process commands in the separate function - [7]
SA2IOFGYAdd items to roster - [8]
EBETRYK7Add counter for id. Check for jid in roster - [9]
OANBCLN5Move xmpp client into XmppState - [10]
BWDUANCVSecond part of processing result is only about stop_future - [11]
XGP44R5HRework stopping xmpp connection - [12]
SU4DNVCBStart to processing roster data - [13]
CBWCXUZZPrepare adding new items to roster - [14]
ALP2YJIURename XmppState to XmppProcessState - [15]
5IKA4GO7Rename xmpp client field from "inner" to "client" - [*]
VS6AHRWIMove XMPP to separate dir
Change contents
- replacement in src/xmpp/mod.rs at line 149[3.3788]→[3.759:783](∅→∅),[3.783]→[3.773:791](∅→∅),[3.791]→[3.797:894](∅→∅),[3.1150]→[3.797:894](∅→∅),[3.18]→[3.797:894](∅→∅),[3.797]→[3.797:894](∅→∅)
fn xmpp_processing(mut self,event: &Event,) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>> {/// Returns false on errorfn xmpp_processing(&mut self, event: &Event) -> bool { - replacement in src/xmpp/mod.rs at line 181
future::ok(self)true - replacement in src/xmpp/mod.rs at line 183
Event::Online => future::ok(self),Event::Online => true, - replacement in src/xmpp/mod.rs at line 186
future::err(self.account)false - replacement in src/xmpp/mod.rs at line 275
let xmpp = XmppConnection {let mut xmpp = XmppConnection { - replacement in src/xmpp/mod.rs at line 279
Box::new(xmpp.xmpp_processing(&event).then(|r| match r {Ok(mut xmpp) => {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,Ok(Either::A(b)),)),if 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, Ok(Either::A(b)))) - replacement in src/xmpp/mod.rs at line 295
Err(account) => {future::err((account, Ok(Either::A(b))))}}))as Box<dyn Future<Item = _, Error = _>>} else {future::err((xmpp.account, Ok(Either::A(b))))} - replacement in src/xmpp/mod.rs at line 299
Box::new(future::err((account, Ok(Either::A(b)))))future::err((account, Ok(Either::A(b)))) - replacement in src/xmpp/mod.rs at line 303
Box::new(if let Some(client) = a.into_inner() {if let Some(client) = a.into_inner() { - replacement in src/xmpp/mod.rs at line 313
})} - replacement in src/xmpp/mod.rs at line 317
Box::new(future::err((account, Ok(Either::A(b)))))future::err((account, Ok(Either::A(b)))) - replacement in src/xmpp/mod.rs at line 320
Box::new(if let Some(client) = a.into_inner() {if let Some(client) = a.into_inner() { - replacement in src/xmpp/mod.rs at line 330
})}