Remove allow(unused_assignments) attribute

It looks like the compiler can ascertain that `message0` will be
initialised by the time we use it, so it doesn't need to be an
`Option` and it doesn't need to be declared as mutable.
This commit is contained in:
Lucas Soriano del Pino 2020-10-26 15:20:28 +11:00
parent 90f6c55290
commit ba4ae09cd1

View File

@ -28,13 +28,12 @@ use xmr_btc::{alice::State0, bob, monero};
pub type Swarm = libp2p::Swarm<Alice>; pub type Swarm = libp2p::Swarm<Alice>;
// FIXME: This whole function is horrible, needs total re-write. // FIXME: This whole function is horrible, needs total re-write.
#[allow(unused_assignments)] // Due to the mutable message0?
pub async fn swap( pub async fn swap(
listen: Multiaddr, listen: Multiaddr,
redeem_address: ::bitcoin::Address, redeem_address: ::bitcoin::Address,
punish_address: ::bitcoin::Address, punish_address: ::bitcoin::Address,
) -> Result<()> { ) -> Result<()> {
let mut message0: Option<bob::Message0> = None; let message0: bob::Message0;
let mut last_amounts: Option<SwapAmounts> = None; let mut last_amounts: Option<SwapAmounts> = None;
let mut swarm = new_swarm(listen)?; let mut swarm = new_swarm(listen)?;
@ -53,7 +52,7 @@ pub async fn swap(
OutEvent::Message0(msg) => { OutEvent::Message0(msg) => {
debug!("Got message0 from Bob"); debug!("Got message0 from Bob");
// TODO: Do this in a more Rusty/functional way. // TODO: Do this in a more Rusty/functional way.
message0 = Some(msg); message0 = msg;
break; break;
} }
other => panic!("Unexpected event: {:?}", other), other => panic!("Unexpected event: {:?}", other),
@ -82,10 +81,7 @@ pub async fn swap(
); );
swarm.set_state0(state0.clone()); swarm.set_state0(state0.clone());
let state1 = match message0 { let state1 = state0.receive(message0).expect("failed to receive msg 0");
Some(msg) => state0.receive(msg).expect("failed to receive msg 0"),
None => panic!("should have the message by here"),
};
let (state2, channel) = match swarm.next().await { let (state2, channel) = match swarm.next().await {
OutEvent::Message1 { msg, channel } => { OutEvent::Message1 { msg, channel } => {