IATA Bar Coded Boarding Pass (BCBP) Library
===========================================
* [Documentation](https://martinmroz.github.io/iata_bcbp/master/iata_bcbp/)
A Rust library for parsing
[IATA BCBP Type M](https://www.iata.org/whatwedo/stb/Documents/BCBP-Implementation-Guide-5th-Edition-June-2016.pdf)
objects conforming to versions 2 through 6 of the standard inclusively.
This format is used by airlines to encode boarding pass information into electronic ticket itinerary
document barcodes in addition to paper and mobile boarding passes.
[![](http://meritbadge.herokuapp.com/iata_bcbp)](https://crates.io/crates/iata_bcbp)
[![Build Status](https://travis-ci.org/martinmroz/iata_bcbp.svg?branch=master)](https://travis-ci.org/martinmroz/iata_bcbp)
[![Coverage Status](https://coveralls.io/repos/github/martinmroz/iata_bcbp/badge.svg?branch=master)](https://coveralls.io/github/martinmroz/iata_bcbp?branch=master)
### Usage
Add the following to your `Cargo.toml`:
```toml
[dependencies]
iata_bcbp = "1.0"
```
In addition, and this to your crate root:
```rust
extern crate iata_bcbp;
```
Here is an example which parses a BCBP object with test data and prints it:
```rust
extern crate iata_bcbp;
use std::str::FromStr;
use iata_bcbp::Bcbp;
fn main() {
const PASS_STR: &str = "M1DESMARAIS/LUC EABC123 YULFRAAC 0834 326J001A0025 100";
let pass_data = Bcbp::from_str(PASS_STR).unwrap();
println!("Passenger: {}", pass_data.passenger_name());
for leg in pass_data.legs().iter() {
println!();
println!(" PNR: {}" , leg.operating_carrier_pnr_code());
println!(" From: {}" , leg.from_city_airport_code());
println!(" To: {}" , leg.to_city_airport_code());
println!(" Flight: {}{}", leg.operating_carrier_designator(), leg.flight_number());
println!(" Seat: {}" , leg.seat_number());
println!(" Sequence: {}" , leg.check_in_sequence_number());
}
}
```
# License
`iata_bcbp` is distributed under the terms of the MIT license.
See LICENSE for details.