orgize/src/elements/block.rs
2019-01-11 00:59:01 +08:00

24 lines
651 B
Rust

#[cfg_attr(test, derive(PartialEq, Debug))]
pub struct Block;
impl Block {
pub fn parse(src: &str) -> Option<(usize, usize, usize, usize)> {
if src.len() < 17 || !src[0..8].eq_ignore_ascii_case("#+BEGIN_") {
return None;
}
let args = eol!(src);
let name = until_while!(src, 8, |c| c == b' ' || c == b'\n', |c: u8| c
.is_ascii_alphabetic());
// TODO: ignore case match
let content = src.find(&format!("\n#+END_{}", &src[8..name]))?;
let end = eol!(src, content + 1);
Some((name, args, content, end + 1))
}
}
#[test]
fn parse() {
// TODO: testing
}