Enum aoc_utils::BufferedInput[][src]

pub enum BufferedInput {
    File(BufReader<File>),
    Stdin(BufReader<Stdin>),
}
Expand description

Wraps the input source to an AOC problem. Handles cmdline arguments.

Supports input from a given file as well as from STDIN. Implements std::io::BufRead for the convenience of the BufRead::lines iterator.

Example

If your executable is named prog and the description is “Example description”, then the help (prog --help) will look like this:

Example description

USAGE:
    prog [FILE]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

ARGS:
    <FILE>    Input file (defaults to STDIN if not provided)

Variants

Tuple Fields of File

0: BufReader<File>

Tuple Fields of Stdin

0: BufReader<Stdin>

Implementations

Parse cmdline arguments and create a new object to read lines from an arbitrary input source.

The application optionally expects a path argument that specifies the file to read from. If not present, the input is read from STDIN.

Arguments
  • description - provides an “about” section in the usage manual.
Example
use std::io::BufRead;
use aoc_utils::BufferedInput;

let input = BufferedInput::parse_args("Example solution").unwrap();
let lines: Vec<String> = input.lines().map(Result::unwrap).collect();

Returns an iterator over the lines of the input that panics when an error occurs.

Trait Implementations

Returns the contents of the internal buffer, filling it with more data from the inner reader if it is empty. Read more

Tells this buffer that amt bytes have been consumed from the buffer, so they should no longer be returned in calls to read. Read more

🔬 This is a nightly-only experimental API. (buf_read_has_data_left)

recently added

Check if the underlying Read has any data left to be read. Read more

Read all bytes into buf until the delimiter byte or EOF is reached. Read more

Read all bytes until a newline (the 0xA byte) is reached, and append them to the provided buffer. Read more

Returns an iterator over the contents of this reader split on the byte byte. Read more

Returns an iterator over the lines of this reader. Read more

Pull some bytes from this source into the specified buffer, returning how many bytes were read. Read more

Like read, except that it reads into a slice of buffers. Read more

🔬 This is a nightly-only experimental API. (can_vector)

Determines if this Reader has an efficient read_vectored implementation. Read more

🔬 This is a nightly-only experimental API. (read_initializer)

Determines if this Reader can work with buffers of uninitialized memory. Read more

Read all bytes until EOF in this source, placing them into buf. Read more

Read all bytes until EOF in this source, appending them to buf. Read more

Read the exact number of bytes required to fill buf. Read more

Creates a “by reference” adapter for this instance of Read. Read more

Transforms this Read instance to an Iterator over its bytes. Read more

Creates an adapter which will chain this stream with another. Read more

Creates an adapter which will read at most limit bytes from it. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.