advent-ocr 0.1.5

Converts ASCII-art representations of letters generated by Advent of Code puzzles into a String containing those letters.
Documentation
# advent-ocr

A Rust function to convert ASCII-art representations of letters generated by Advent of Code puzzles into a String containing those letters. Through 2023, these puzzles are:
* 2016, Day 8
* 2018, Day 10
* 2019, Days 8 and 11
* 2011, Day 13
* 2022, Day 10

## Installation

Add this to your Cargo.toml file:
```sh
[dependencies]
advent-ocr = "0.1.5"
```

## Usage

There is one function, `ocr()`, that takes one argument, `image`.

`image` can take the following types:
* `&str`
* `(&Vec<bool>, usize)`, a tuple consisting of a Vec of bools and the width of a line.
* `(&Vec<bool>, usize)`, a tuple consisting of a Vec of chars and the width of a line.
* `&Vec<Vec<bool>>`, a Vec of a Vec of bools.
* `&Vec<Vec<char>>`, a Vec of a Vec of chars.

For &str and the char-based Vecs, '#' is considered part of a letter and all other chars are considered blank space. For the bool-based Vecs, `true` is considered part of a letter and `false` is considered blank space.

```sh
use advent_ocr::ocr;

let image = r"
.##..###...##.
#..#.#..#.#..#
#..#.###..#...
####.#..#.#...
#..#.#..#.#..#
#..#.###...##.
    ";

let s = ocr(image).unwrap();
println!("{s}"); // prints "ABC"
```

## Warning/Credits

This library recognizes the two font sizes used in Advent of Code puzzles, but neither font alphabet is complete. This draws on the efforts of [mstksg](https://github.com/mstksg) and possibly others. If the function does not recognize a letter, send me a message with the image that failed to render, and I will add it!

## License

Licensed under either of

- Apache License, Version 2.0 ([LICENSE-APACHE]LICENSE-APACHE or
  http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT]LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.