INNER CODE UNIT · Rust
read_identifier
dontpanic92/OpenPAL3 · crosscom/ccidl-rs/src/lib.rs:630
fn read_identifier(&mut self) -> Result<String, String> {
let start = self.pos;
while let Some(ch) = self.peek_char() {
if ch.is_whitespace() || matches!(ch, ':' | '{' | '}' | '(' | ')' | ';' | ',') {
break;
}
self.pos += ch.len_utf8();
}
if start == self.pos {
Err(format!("expected identifier near byte {}", self.pos))
} else {
Ok(self.input[start..self.pos].trim().to_string())
}
}
fn read_until(&mut self, target: char) -> Result<&'a str, String> {
let start = self.pos;
while let Some(ch) = self.peek_char() {