style: code fmt style

This commit is contained in:
2020-07-26 15:51:15 +08:00
parent d4aaebf94e
commit d91b059d1d
2 changed files with 24 additions and 33 deletions

View File

@@ -247,13 +247,13 @@ fn main() -> std::io::Result<()> {
#[allow(dead_code)]
// test zone
//TODO refactor
//todo implement 2001/11/01 3 getters !clement
//todo implement 2001/11/01 3 getters !thomas
//fix implement 18/11/2001 getters
//todo implement 2001/11/01 #3 getters !clement
//todo implement 2001/11/01 #3 getters !thomas
//fix implement 18/11/2001 getters !jht5945
//4
//10/10/10
fn test(){
todo!("implements getters");
}
//todo implement 2020/08/14 5 getters !clement
//todo implement 2020/08/14 #5 getters !clement

View File

@@ -17,17 +17,15 @@ pub struct Token{
impl Token {
pub fn new(file: String, line: usize, s: String, verbosity: i8) -> Token {
// println!("{}", s);
println!(">>>>>>>>>>>{}", s);
let fields: Vec<&str>= s.split_whitespace().collect();
let number_regex = Regex::new("\\b[1-9]\\b").unwrap();
let date_regex = Regex::new("(\\d*/\\d*/\\d*)").unwrap();
let member_regex = Regex::new("!\\w*").unwrap();
let number_regex = Regex::new("#[0-9]").unwrap();
let date_regex = Regex::new("(\\d+/\\d+/\\d+)").unwrap();
let member_regex = Regex::new("![\\w]+").unwrap();
if date_regex.is_match("5") {
panic!("regex");
}
// for i in &fields {
// println!("{}", i);
// }
println!("///////////{:?}", fields);
let mut t = Token {
file,
@@ -40,27 +38,23 @@ impl Token {
verbosity,
};
for i in 0..fields.len() {
for (i, field) in fields.iter().enumerate() {
if i == 0 {
t.keyword = fields[0].to_string().to_lowercase();
} else if number_regex.is_match(fields[i]) {
t.priority = Some(fields[i].to_string());
} else if date_regex.is_match(fields[i]) {
let date : Vec<&str> = fields[i].split('/').collect();
t.date = NaiveDate::from_ymd_opt(date[0].parse::<i32>().unwrap(), date[1].parse::<u32>().unwrap(), date[2].parse::<u32>().unwrap());
// t.date = Some(fields[i].to_string());
} else if member_regex.is_match(fields[i]) {
let mut member = String::new(); //from(fields[i].clone()).chars().next().map(|c| &s[c.len_utf8()..]).unwrap();
let it = fields[i].chars().skip(1);
for i in it {
member.push(i);
}
t.member = Some(member);
t.keyword = field.to_lowercase();
} else if number_regex.is_match(field) {
t.priority = Some(field.chars().skip(1).collect::<String>());
} else if date_regex.is_match(field) {
let date: Vec<&str> = field.split('/').collect();
let year = date[0].parse::<i32>().unwrap();
let month = date[1].parse::<u32>().unwrap();
let day = date[2].parse::<u32>().unwrap();
t.date = NaiveDate::from_ymd_opt(year, month, day);
} else if member_regex.is_match(field) {
t.member = Some(field.chars().skip(1).collect::<String>());
} else {
t.comment = match t.comment {
None => Some(fields[i].to_string()),
Some(comment) => Some(format!("{} {}", comment, fields[i])),
None => Some(field.to_string()),
Some(comment) => Some(format!("{} {}", comment, field)),
};
}
}
@@ -113,11 +107,8 @@ impl fmt::Display for Token {
if let Some(comment) = &self.comment {
multiline_msg.push(format!("{}", comment.blue()));
}
// if self.comment.is_some() {
// s = string_format!("{}{}\n".to_string(), s, self.comment.clone().unwrap().blue().to_string());
// }
}
write!(f, "{}\n", multiline_msg.join("\n"))?;
Ok(())
}