Git Product home page Git Product logo

cc3166-rs's Introduction

cc3166

A minimalistic Country type for working with Country Codes as defined in ISO 3166-1.

Excerpt from page:

The country codes can be represented either as a two-letter code (alpha-2) which is recommended as the general-purpose code, a three-letter code (alpha-3) which is more closely related to the country name and a three-digit numeric code (numeric-3) which can be useful if you need to avoid using Latin script.

Using optional features the crate can provide country name translations into featured language using in_<language>().

Currently provided translations (in lowercase for feature name):

  • Chinese
  • Finnish
  • French
  • Russian
  • Spanish
  • Swedish

Note that the underlying data is derived from open public sources only, as such data quality is not guaranteed.

Usage

Add this to your Cargo.toml:

[dependencies]
cc3166 = { version = "0.1", git = "https://github.com/procrustus/cc3166-rs" }

Example

use cc3316::Country;

let a3_str = "USA";

match Country::from_a3(a3_str) {
    Ok(code) => {
        // `Display` is implemented, displaying the Alpha-2 code.
        
        // `Debug` is implementented, diplaying the Country enum value.
        println!("{:?}", code); // "Country::US"
        // `alpha2()` returns the recommended general-purpose alpha-2 code.
        println!("  Alpha-2 code: {}", code.alpha2()); // "US"
        // `alpha3()` returns the alpha-3 code which is more closely related to 
        // the country name.
        println!("  Alpha-3 code: {}", code.alpha3()); // "USA"
        // `numeric()` returns the numeric code which can be useful if you need 
        // to avoid using Latin script.
        println!("  Numeric code: {}", code.numeric()); // 840
        // `country_data()` returns a reference to the underlying basic 
        // `CountryData` which includes the Alpha-2/-3 & numeric code.
        //
        // CountryData("US", "USA", 840) for `code`.
        println!("  Country data: {:?}", code.country_data()); 
    }
    Err(err) => panic!("Unable to parse country code `{}`: {}.", a3_str, err),
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

cc3166-rs's People

Contributors

procrustus avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.