/iata_bcbp

IATA Bar Coded Boarding Pass (BCBP) Parsing Library in Rust

Primary LanguageRustMIT LicenseMIT

IATA Bar Coded Boarding Pass (BCBP) Library

A Rust library for parsing IATA BCBP Type M 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.

Build Status Coverage Status

Usage

Add the following to your Cargo.toml:

[dependencies]
iata_bcbp = "1.0"

In addition, and this to your crate root:

extern crate iata_bcbp;

Here is an example which parses a BCBP object with test data and prints it:

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.