Using macro to implement the comprehensions of imitating python language in rust

crate: https://crates.io/crates/set_derive

Examples

```rust use set_derive::*;

use std::{iter::zip,collections::{HashMap,HashSet}};

asserteq!(setderive!((8)[1; for(_ in 0..1)]).capacity(), 8);

let a = setderive!([i; for(i in 0..5) if(i & 1 == 0)]); asserteq!(a, vec![0, 2, 4]);

let a = setderive!((30)[j; for(i in 0..5) if(i & 1 == 0) for(j in 0..=i)]); asserteq!(a.capacity(), 30); assert_eq!(a, vec![0,0,1,2,0,1,2,3,4]);

let a = setderive!({j; for(i in 0..5) if(i & 1 == 0) for(j in 0..=i)}); asserteq!(a, HashSet::from_iter(0..5));

let a = setderive!({j => j + 1; for(i in 0..5) if(i & 1 == 0) for(j in 0..=i)}); asserteq!(a, HashMap::from_iter(zip(0..5, 1..6))); ```