file_scanner 0.1.1

Advanced text input handler patterned after java.util.Scanner
Documentation
# Scanner [![Build Status]https://travis-ci.org/hxtk/Rust-Scanner.png?branch=master]https://travis-ci.org/hxtk/Rust-Scanner

A port of Java's `java.util.Scanner` interface to Rust.

## Installing / Getting started

This project is available on [crates.io](https://crates.io/crates/file_scanner).

For the most recent version, always check this repository.

## Developing

Code should be styled according to `rustfmt`. There is currently no behavior
in our roadmap that should require the use of an `unsafe` block.

All `unwrap()`s should either immediately follow a check that they are safe or
include a comment explaining why they are guaranteed to be safe.

Finally, we are following test-driven development. Use the behavior of `java.util.Scanner` as the reference implementation for a test, with the exception that exceptions should never be raised in a situation where a wrapped return value, e.g., `Option`, `Result`, would be appropriate. This will present some places where we will not have parity with Java.

### Deploying / Publishing

Simply add `file_scanner = "0.1.1"` to your `[dependencies]`.

```rust
extern crate file_scanner;
use file_scanner::Scanner;

// snip
```

## Features

### Complete

- `Scanner.next() -> Option<String>`

- `Scanner.next_line() -> Option<String>`

- `Scanner.next_int<T: Integer + FromStr>() -> Option<T>`

- Support for regular language delimiters

- `Scaner.next_float<T: Float + FromStr>() -> Option<T>`

### Road Map

- Arbitrary radix number parsing

## Contributing

In general, feel free to work on any feature that is found in `java.util.Scanner` that we have not implemented here. The repository owner(s) reserve the right to reject pull requests. Here are some tips to make sure your pull request is accepted:

- Comment on the issue for the feature you are writing. If there isn't an issue, make one.

- Get approval from one of the main contributors.

- Include unit tests for your feature. Where there is pairity with `java.util.Scanner`, ensure those tests match its behavior (see exception caveat under "Developing").

One of the best ways you can help if you don't have time to implement a feature is to nitpick. The lead developer is still a student of both Rust and software engineering in general.