scfmt 0.3.1

A tool for formatting code with structured comments
Documentation
//> consume any previous now unecessary //<
    
    let line_of_latest_comment = comment_tracker[comment_tracker.len() - 1].line;
    
    // if there even could be a //< comment behind the lastest comment
    if line_of_latest_comment > 0 {
        let line_before_open_bracket_comment = &lines_list[line_of_latest_comment - 1];
    
        //> chop off begining spaces
            let mut line_no_leading_spaces = "";
            let mut leading_spaces: Option<usize> = None;
            let char_vec: Vec<char> = line_before_open_bracket_comment.chars().collect();
            for (i, char) in char_vec.iter().enumerate() {
                if *char as u32 > 32 {
                    line_no_leading_spaces = &line_before_open_bracket_comment[i..];
                    leading_spaces = Some(i);
                    break;
                }
            }

        //<> remove comment notation if it exists
        let comment_starter_with_space = comment_starter.to_owned() + " ";
        let mut is_a_comment = false;
        let mut line_no_comment_opener = "";
        if line_no_leading_spaces.starts_with(&comment_starter_with_space) {
            is_a_comment = true;
            line_no_comment_opener = &line_no_leading_spaces[comment_starter.len() + 1..];
        } else if line_no_leading_spaces.starts_with(comment_starter) {
            is_a_comment = true;
            line_no_comment_opener = &line_no_leading_spaces[comment_starter.len()..];
        }
        //<
        let latest_comment =
            match count_and_remove_begining_spaces(&lines_list[line_of_latest_comment]) {
                Some(x) => x,
                None => (0, String::from("")),
            };
    
        if is_a_comment
            && line_no_comment_opener.starts_with('<')
            && latest_comment.0 == leading_spaces.unwrap()
        {
            should_consume_closing_comment = true;
        }
    }
//<