Move divide_text() into scope of impl Parser

This commit is contained in:
Matthias Beyer 2015-10-30 15:23:29 +01:00
parent b6d52b2616
commit d54825de6b

View file

@ -109,7 +109,7 @@ impl<HP, DP> Parser<HP, DP> where
where FD: FileData + Sized, where FD: FileData + Sized,
DP: FileDataParser<FD> DP: FileDataParser<FD>
{ {
let divided = divide_text(&s); let divided = self.divide_text(&s);
if divided.is_err() { if divided.is_err() {
return Err(divided.err().unwrap()); return Err(divided.err().unwrap());
@ -149,25 +149,26 @@ impl<HP, DP> Parser<HP, DP> where
Ok(h_text.ok().unwrap() + &d_text.ok().unwrap()[..]) Ok(h_text.ok().unwrap() + &d_text.ok().unwrap()[..])
} }
}
fn divide_text(text: &String) -> Result<TextTpl, ParserError> { fn divide_text(&self, text: &String) -> Result<TextTpl, ParserError> {
let re = Regex::new(r"(?m)^\-\-\-$\n(.*)^\-\-\-$\n(.*)").unwrap(); let re = Regex::new(r"(?m)^\-\-\-$\n(.*)^\-\-\-$\n(.*)").unwrap();
let captures = re.captures(&text[..]).unwrap_or( let captures = re.captures(&text[..]).unwrap_or(
return Err(ParserError::new("Cannot run regex on text", return Err(ParserError::new("Cannot run regex on text",
text.clone(), 0, text.clone(), 0,
"Cannot run regex on text to divide it into header and content.")) "Cannot run regex on text to divide it into header and content."))
); );
if captures.len() != 2 { if captures.len() != 2 {
return Err(ParserError::new("Unexpected Regex output", return Err(ParserError::new("Unexpected Regex output",
text.clone(), 0, text.clone(), 0,
"The regex to divide text into header and content had an unexpected output.")) "The regex to divide text into header and content had an unexpected output."))
}
let header = captures.at(0).map(|s| String::from(s));
let content = captures.at(1).map(|s| String::from(s));
Ok((header, content))
} }
let header = captures.at(0).map(|s| String::from(s));
let content = captures.at(1).map(|s| String::from(s));
Ok((header, content))
} }