INNER CODE UNIT · Rust

parse_multiline_string

steineggerlab/folddisco · lib/pdbtbx-cif/src/lib.rs:431

fn parse_multiline_string<'a>(input: &mut Position<'a>) -> Result<&'a str, PDBError> {
    let mut chars_to_remove = 1; //Assume the first position is ';'
    let mut eol = false;
    let mut iter = input.text.chars().skip(1).peekable();

    while let Some(c) = iter.next() {
        if eol && c == ';' {
            let trimmed = &input.text[1..chars_to_remove];
            input.text = &input.text[(chars_to_remove + 1)..];
            input.column += 1;
            return Ok(trimmed);
        } else if c == '\n' {
            if let Some('\r') = iter.peek() {
                chars_to_remove += 1;
                let _ = iter.next();
            }
            input.line += 1;
            input.column = 1;

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…