Skip to main content

weavatrix_parse/protobuf/
mod.rs

1//! Lossless protobuf package, message, service, and RPC contract facts.
2
3use crate::contract_tokens::ContractTokens;
4use crate::facts::{Contract, ContractKind, Facts, Import, ParseDiagnostic, Span};
5use crate::syntax::Language;
6use crate::token::TokenKind;
7
8#[must_use]
9pub fn extract(source: &str) -> Facts {
10    Parser::new(source).parse()
11}
12
13struct Parser<'source> {
14    tokens: ContractTokens<'source>,
15    package: String,
16    message_scopes: Vec<(usize, String)>,
17    facts: Facts,
18}
19
20mod parser;
21
22#[cfg(test)]
23mod tests;