collections of useful macros
example
```rust
use usefulmacro::*;
//get argument and into Vec
//cargo run -- -n 100
let arg = args!();
asserteq!(arg,vec![format!("-n"),format!("100")]);
//get input and into String
let s = input!();
println!("{:?}",s);
//power of two f64 number
let p = powf!(2.,2.);
assert_eq!(p,4.0);
//split a:&str by b:&str and collect into Vec
let s = splittovec!("aa.bb",".");
assert_eq!(s,vec![format!("aa"),format!("bb")]);
// read .csv file and return Vec>
let s = readcsv!("./data.csv");
asserteq!(s,vec![vec![format!("a"), format!("b"), format!("c")],vec![format!("1"), format!("2"), format!("3")],vec![format!("10"), format!("20"), format!("30")]]);
//return sorted vec
// type can be Vec Vec Vec Vec Vec Vec Vec
let s1 = sorted!(vec![1.2, 2.6, 0.2]);
let s2 = sorted!(vec![8, 1i128, 5i128]);
asserteq!(s1,vec![0.2,1.2,2.6]);
asserteq!(s2,vec![1,5,8]);
// return sorted and deduped new Vec
// type can be Vec Vec Vec Vec Vec Vec Vec
let s1 = dedupedsorted!(vec![1.2, 1.2,2.6, 0.2]);
let s2 = dedupedsorted!(vec![8, 1i128, ,8,5i128]);
asserteq!(s1,vec![0.2,1.2,2.6]);
asserteq!(s2,vec![1,5,8]);
//parse vec item to f64,
// type can be Vec Vec Vec Vec Vec Vec Vec
//return Vec
let v1 = vecparse!(vec!["15.", "2.9"]);
let v2 = vecparse!(vec!["15", "2"]);
let v3 = vecparse!(vec![".15", ".2"]);
asserteq!(vec![15.0, 2.9], v1);
asserteq!(vec![15.0, 2.0], v2);
asserteq!(vec![0.15, 0.2], v3);
```