use nom::{
    IResult, Parser,
    branch::alt,
    character::complete::{char, line_ending},
    combinator::value,
    multi::many_m_n,
    sequence::pair,
};

use crate::ast::Inline;

pub(super) fn hard_newline(input: &str) -> IResult<&str, Inline> {
    value(
        Inline::LineBreak,
        alt((
            value((), pair(char('\\'), line_ending)),
            value((), pair(many_m_n(2, usize::MAX, char(' ')), line_ending)),
        )),
    )
    .parse(input)
}
