pub fn find_comment_index(line: &str) -> Option<usize> {
if !line.contains('%') {
return None;
}
let n = line.chars().count();
if n == 0 {
return None;
}
let mut prev_c: char = line.chars().next().unwrap();
if prev_c == '%' {
return Some(0);
}
if n == 1 {
return None;
}
for i in 1..n {
let c = line.chars().nth(i).unwrap();
if c == '%' && (prev_c == ' ' || prev_c != '\\') {
return Some(i);
}
prev_c = c;
}
None
}
pub fn remove_comment(line: &str, comment: Option<usize>) -> String {
match comment {
Some(c) => line.chars().take(c).collect(),
None => line.to_string(),
}
}
pub fn get_comment(line: &str, comment: Option<usize>) -> String {
match comment {
Some(c) => line.chars().skip(c).collect(),
None => "".to_string(),
}
}