# nrparser
A parsing library for frequently used nurse rostering data formats.
## Features
- Parse original instances and solutions from five public datasets
- Convert instances and solutions to a common json format
- Parse any instance in the common json format
## Supported datasets
| NSPLib | 2007 | NSPLib–a nurse scheduling problem library: A tool to evaluate (meta-) heuristic procedures. In Proceedings of the 31st EWGORAHS, pp. 151–165. |
| KAHO | 2012 | Local search neighbourhoods for dealing with a novel nurse rostering model. Annals OR 194 (1):33–57. |
| INRC1 | 2014 | The first international nurse rostering competition 2010. Annals OR 218: 221––236. |
| Curtois2014 | 2014 | Computational results on new staff scheduling benchmark instances. Tech. rep |
| INRC2 | 2019 | The second international nurse rostering competition. Annals OR 274 (1): 171–186. |
The json format standard and a selection of converted instances are available on [gitlab](https://gitlab.kuleuven.be/codes/datasets/nurse-rostering-data-sets).
## Usage
Add this to your `Cargo.toml`:
```toml
[dependencies]
nrparser = "0.1"
```
Then:
```rust
use nrparser::inrc1;
use nrparser::kaho;
// Parse an instance from The International Nurse Rostering Competition
let inrc1_instance = inrc1::parse("inrc1_path");
// Parse an instance from the KAHO dataset
let kaho_instance = kaho::parse("kaho_path");
```