1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
#[macro_use] extern crate ego_tree; mod extractor; mod parser; mod util; pub use extractor::ExtractorError; pub use parser::{ Argument, Field, Method, MethodArgs, Object, ObjectData, ParseError, Parsed, Type, }; pub const BOT_API_DOCS_URL: &str = "https://core.telegram.org/bots/api/"; use extractor::Extractor; #[derive(Debug, thiserror::Error)] pub enum Error { #[error("Extractor: {0}")] Extractor( #[from] #[source] ExtractorError, ), #[error("Parser: {0}")] Parse( #[from] #[source] ParseError, ), } pub fn get(html_doc: &str) -> Result<Parsed, Error> { let extractor = Extractor::from_str(html_doc); let extracted = extractor.extract()?; let parsed = parser::parse(extracted)?; Ok(parsed) }