commit - 98dc42daff9085d15cc1c01d879e678ad35dec78
commit + a39721dfc8cde9a3741a31faec4f757e89d227fb
blob - 56bf9cb23f9bd86295b26e92b8cfa2fd1689225e
blob + 92a722d1a2fe4e76b4037c534232dce45ee6684f
--- eur-lex-scraper/src/parsers/act.rs
+++ eur-lex-scraper/src/parsers/act.rs
use crate::models::acts::EUAct;
-use crate::parsers::enacting_terms::EnactingTermParser;
use crate::parsers::{
act_title::{EUActTileParser, EUActTitleParserError},
- preamble::PreambleParser,
+ enacting_terms::{EnactingTermParser, EnactingTermParserError},
+ preamble::{PreambleParser, PreambleParserError},
};
use scraper::{Html, Selector};
pub enum EUActParserError {
#[error("error while parsing title: {0}")]
TitleError(EUActTitleParserError),
+ #[error("error while parsing preamble: {0}")]
+ PreambleError(PreambleParserError),
+ #[error("error while parsing enacting terms: {0}")]
+ EnactingTermsError(EnactingTermParserError),
}
impl From<EUActTitleParserError> for EUActParserError {
}
}
+impl From<PreambleParserError> for EUActParserError {
+ fn from(value: PreambleParserError) -> Self {
+ EUActParserError::PreambleError(value)
+ }
+}
+
+impl From<EnactingTermParserError> for EUActParserError {
+ fn from(value: EnactingTermParserError) -> Self {
+ EUActParserError::EnactingTermsError(value)
+ }
+}
+
pub struct EUActParser {}
impl EUActParser {
// Get preamble
let preamble_selector = Selector::parse("#pbl_1").unwrap();
let preamble_section = act_html.select(&preamble_selector).next().unwrap();
- let preamble = PreambleParser::parse(preamble_section).unwrap();
+ let preamble = PreambleParser::parse(preamble_section)?;
// /////////////
// Get enacting terms
let enacting_terms_selector = Selector::parse("#enc_1").unwrap();
let enacting_terms_section = act_html.select(&enacting_terms_selector).next().unwrap();
- let enacting_terms = EnactingTermParser::parse(enacting_terms_section).unwrap();
+ let enacting_terms = EnactingTermParser::parse(enacting_terms_section)?;
Ok(EUAct {
title,