jisort/parser/
empty_line.rs1use nom::{
2 character::complete::{line_ending, space0},
3 IResult,
4};
5
6pub fn empty_line(input: &str) -> IResult<&str, ()> {
11 let (input, _) = space0(input)?;
12 let (input, _) = line_ending(input)?;
13
14 Ok((input, ()))
15}
16
17#[cfg(test)]
18mod tests {
19 use super::*;
20
21 #[test]
22 fn dont_parse_nothing() {
23 let res = empty_line("");
24
25 assert!(res.is_err());
26 }
27
28 #[test]
29 fn parse_newline() {
30 let (rest, _) = empty_line("\n").unwrap();
31
32 assert_eq!(rest, "");
33 }
34
35 #[test]
36 fn parse_carriage_return() {
37 let (rest, _) = empty_line("\r\n").unwrap();
38
39 assert_eq!(rest, "");
40 }
41
42 #[test]
43 fn parse_with_spaces() {
44 let (rest, _) = empty_line(" \n").unwrap();
45
46 assert_eq!(rest, "");
47 }
48
49 #[test]
50 fn parse_with_tab() {
51 let (rest, _) = empty_line("\t\n").unwrap();
52
53 assert_eq!(rest, "");
54 }
55}