From 56d37f135536c7d17ab98c6671094925dee64a5e Mon Sep 17 00:00:00 2001
From: Hristo Venev <hristo@venev.name>
Date: Sat, 28 Sep 2019 18:20:33 +0000
Subject: I don't like `if let` that much.

---
 src/manager/builder.rs |  8 +++-----
 src/manager/mod.rs     | 20 +++++++-------------
 src/manager/updater.rs | 24 +++++++++---------------
 src/model/ip.rs        | 14 ++++++--------
 4 files changed, 25 insertions(+), 41 deletions(-)

(limited to 'src')

diff --git a/src/manager/builder.rs b/src/manager/builder.rs
index e5fe2da..a5f04f2 100644
--- a/src/manager/builder.rs
+++ b/src/manager/builder.rs
@@ -162,11 +162,9 @@ fn find_psk<'a>(
     src: &'a Source,
     p: &proto::Peer,
 ) -> Result<Option<&'a model::Key>, Error> {
-    let want = gc.peers.get(&p.public_key);
-    let want = if let Some(v) = want {
-        v
-    } else {
-        return Ok(None);
+    let want = match gc.peers.get(&p.public_key) {
+        Some(v) => v,
+        None => return Ok(None),
     };
 
     if let Some(ref want_src) = &want.source {
diff --git a/src/manager/mod.rs b/src/manager/mod.rs
index 78d579f..aa8b792 100644
--- a/src/manager/mod.rs
+++ b/src/manager/mod.rs
@@ -95,20 +95,15 @@ impl Manager {
     }
 
     fn state_path(&self) -> Option<PathBuf> {
-        let mut path = if let Some(ref path) = self.state_directory {
-            path.clone()
-        } else {
-            return None;
-        };
+        let mut path = self.state_directory.as_ref()?.clone();
         path.push("state.json");
         Some(path)
     }
 
     fn current_load(&mut self) -> bool {
-        let path = if let Some(path) = self.state_path() {
-            path
-        } else {
-            return false;
+        let path = match self.state_path() {
+            Some(v) => v,
+            None => return false,
         };
 
         let data = match load_file(&path) {
@@ -136,10 +131,9 @@ impl Manager {
     }
 
     fn current_update(&mut self, c: &model::Config) {
-        let path = if let Some(path) = self.state_path() {
-            path
-        } else {
-            return;
+        let path = match self.state_path() {
+            Some(v) => v,
+            None => return,
         };
 
         let data = serde_json::to_vec(c).unwrap();
diff --git a/src/manager/updater.rs b/src/manager/updater.rs
index 0de675c..14d55fc 100644
--- a/src/manager/updater.rs
+++ b/src/manager/updater.rs
@@ -19,20 +19,15 @@ impl Updater {
     }
 
     fn cache_path(&self, s: &Source) -> Option<PathBuf> {
-        if let Some(ref dir) = self.config.cache_directory {
-            let mut p = dir.clone();
-            p.push(&s.name);
-            Some(p)
-        } else {
-            None
-        }
+        let mut p = self.config.cache_directory.as_ref()?.clone();
+        p.push(&s.name);
+        Some(p)
     }
 
     fn cache_update(&self, src: &Source) {
-        let path = if let Some(path) = self.cache_path(src) {
-            path
-        } else {
-            return;
+        let path = match self.cache_path(src) {
+            Some(v) => v,
+            None => return,
         };
 
         let data = serde_json::to_vec(&src.data).unwrap();
@@ -45,10 +40,9 @@ impl Updater {
     }
 
     pub fn cache_load(&self, src: &mut Source) -> bool {
-        let path = if let Some(path) = self.cache_path(src) {
-            path
-        } else {
-            return false;
+        let path = match  self.cache_path(src) {
+            Some(v) => v,
+            None => return false,
         };
 
         let data = match load_file(&path) {
diff --git a/src/model/ip.rs b/src/model/ip.rs
index c20464f..490dada 100644
--- a/src/model/ip.rs
+++ b/src/model/ip.rs
@@ -159,10 +159,9 @@ macro_rules! per_proto {
             }
 
             pub fn insert(&mut self, mut net: $nett) {
-                let mut i = if let Err(i) = self.nets.binary_search(&net) {
-                    i
-                } else {
-                    return;
+                let mut i = match self.nets.binary_search(&net) {
+                    Err(v) => v,
+                    Ok(_) => return,
                 };
                 let mut j = i;
                 if i != 0 && self.nets[i - 1].contains(&net) {
@@ -317,10 +316,9 @@ per_proto!(Ipv4Net(Ipv4Addr; "IPv4 network"); u32(4); Ipv4Set);
 per_proto!(Ipv6Net(Ipv6Addr; "IPv6 network"); u128(16); Ipv6Set);
 
 fn pfx_split(s: &str) -> Result<(&str, u8), NetParseError> {
-    let i = if let Some(i) = s.find('/') {
-        i
-    } else {
-        return Err(NetParseError);
+    let i = match s.find('/') {
+        Some(v) => v,
+        None => return Err(NetParseError),
     };
     let (addr, pfx) = s.split_at(i);
     let pfx = u8::from_str(&pfx[1..]).map_err(|_| NetParseError)?;
-- 
cgit