Sha256: aef9768beaf5042b8629599b2094712646abb23eb11fa662b5a9bf3dfa432547

Contents?: true

Size: 684 Bytes

Versions: 38

Compression:

Stored size: 684 Bytes

Contents

use nom::{
  character::complete::{alphanumeric1 as alphanumeric, line_ending as eol},
  multi::many0,
  sequence::terminated,
  IResult,
};

pub fn end_of_line(input: &str) -> IResult<&str, &str> {
  if input.is_empty() {
    Ok((input, input))
  } else {
    eol(input)
  }
}

pub fn read_line(input: &str) -> IResult<&str, &str> {
  terminated(alphanumeric, end_of_line)(input)
}

pub fn read_lines(input: &str) -> IResult<&str, Vec<&str>> {
  many0(read_line)(input)
}

#[cfg(feature = "alloc")]
#[test]
fn read_lines_test() {
  let res = Ok(("", vec!["Duck", "Dog", "Cow"]));

  assert_eq!(read_lines("Duck\nDog\nCow\n"), res);
  assert_eq!(read_lines("Duck\nDog\nCow"), res);
}

Version data entries

38 entries across 38 versions & 1 rubygems

Version Path
wasmtime-29.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-28.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-27.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-26.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-25.0.2 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-25.0.1 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-25.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-24.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-23.0.2 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-22.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-21.0.1 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-20.0.2 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-20.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-18.0.3 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-17.0.1 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-17.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-16.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-15.0.1 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-15.0.0 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs
wasmtime-14.0.4 ./ext/cargo-vendor/nom-7.1.3/tests/multiline.rs