updates, clippy, formatting
[Mitarbeiter/Tim-Zeitz/stud-rust-base.git] / src / bin / decode_vector.rs
index 691a7a09d2966084c50c74b492638c2c696c5c6d..6169732dfdf346eabdbd57adc421a8f27251170e 100644 (file)
@@ -1,49 +1,36 @@
-extern crate stud_rust_base;
-use stud_rust_base::{io::*, cli::CliErr};
 use std::{env, error::Error};
+use stud_rust_base::{cli::CliErr, io::*};
 
 fn main() -> Result<(), Box<dyn Error>> {
-    let mut args = env::args();
-    args.next();
-
-    match &args.collect::<Vec<String>>()[..] {
-        [data_type, input] => {
-            match data_type.as_ref() {
-                "i8" => { print_values(Vec::<i8>::load_from(input)?); Ok(()) },
-                "u8" => { print_values(Vec::<u8>::load_from(input)?); Ok(()) },
-                "i16" => { print_values(Vec::<i16>::load_from(input)?); Ok(()) },
-                "u16" => { print_values(Vec::<u16>::load_from(input)?); Ok(()) },
-                "i32" => { print_values(Vec::<i32>::load_from(input)?); Ok(()) },
-                "u32" => { print_values(Vec::<u32>::load_from(input)?); Ok(()) },
-                "i64" => { print_values(Vec::<i64>::load_from(input)?); Ok(()) },
-                "u64" => { print_values(Vec::<u64>::load_from(input)?); Ok(()) },
-                "f32" => { print_values(Vec::<f32>::load_from(input)?); Ok(()) },
-                "f64" => { print_values(Vec::<f64>::load_from(input)?); Ok(()) },
-                "int8" => { print_values(Vec::<i8>::load_from(input)?); Ok(()) },
-                "uint8" => { print_values(Vec::<u8>::load_from(input)?); Ok(()) },
-                "int16" => { print_values(Vec::<i16>::load_from(input)?); Ok(()) },
-                "uint16" => { print_values(Vec::<u16>::load_from(input)?); Ok(()) },
-                "int32" => { print_values(Vec::<i32>::load_from(input)?); Ok(()) },
-                "uint32" => { print_values(Vec::<u32>::load_from(input)?); Ok(()) },
-                "int64" => { print_values(Vec::<i64>::load_from(input)?); Ok(()) },
-                "uint64" => { print_values(Vec::<u64>::load_from(input)?); Ok(()) },
-                "float32" => { print_values(Vec::<f32>::load_from(input)?); Ok(()) },
-                "float64" => { print_values(Vec::<f64>::load_from(input)?); Ok(()) },
-                _ => {
-                    print_usage();
-                    Err(Box::new(CliErr("Invalid data type")))
-                }
+    let mut args = env::args().skip(1);
+    match (args.next(), args.next()) {
+        (Some(data_type), Some(ref input)) => match data_type.as_ref() {
+            "i8" | "int8" => print_values(Vec::<i8>::load_from(input)?),
+            "u8" | "uint8" => print_values(Vec::<u8>::load_from(input)?),
+            "i16" | "int16" => print_values(Vec::<i16>::load_from(input)?),
+            "u16" | "uint16" => print_values(Vec::<u16>::load_from(input)?),
+            "i32" | "int32" => print_values(Vec::<i32>::load_from(input)?),
+            "u32" | "uint32" => print_values(Vec::<u32>::load_from(input)?),
+            "i64" | "int64" => print_values(Vec::<i64>::load_from(input)?),
+            "u64" | "uint64" => print_values(Vec::<u64>::load_from(input)?),
+            "f32" | "float32" => print_values(Vec::<f32>::load_from(input)?),
+            "f64" | "float64" => print_values(Vec::<f64>::load_from(input)?),
+            _ => {
+                print_usage();
+                return Err(Box::new(CliErr("Invalid data type")));
             }
         },
         _ => {
             print_usage();
-            Err(Box::new(CliErr("Invalid arguments")))
-        },
-    }
+            return Err(Box::new(CliErr("Invalid arguments")));
+        }
+    };
+    Ok(())
 }
 
 fn print_usage() {
-    eprintln!("Usage: decode_vector data_type input_vector_file
+    eprintln!(
+        "Usage: decode_vector data_type input_vector_file
 
 Reads binary data from input_vector_file and writes the data to the standard output. data_type can be one of
 * i8
@@ -57,13 +44,15 @@ Reads binary data from input_vector_file and writes the data to the standard out
 * f32
 * f64
 
-");
+"
+    );
 }
 
 use std::fmt::Display;
 
-fn print_values<T>(values: Vec<T>) where
-    T: Display
+fn print_values<T>(values: Vec<T>)
+where
+    T: Display,
 {
     for v in values {
         println!("{}", v);