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;