Crates.io | codes-iso-3166 |
lib.rs | codes-iso-3166 |
version | 0.1.5 |
source | src |
created_at | 2022-12-07 22:17:00.404003 |
updated_at | 2022-12-25 02:50:15.849131 |
description | This package contains an implementation of the ISO 3166 Country Codes specification. |
homepage | |
repository | https://github.com/johnstonskj/rust-codes |
max_upload_size | |
id | 732187 |
size | 1,239,158 |
This package contains an implementation of the ISO 3166 parts 1 and 2 standards.
The purpose of ISO 3166 is to define internationally recognized codes of letters and/or numbers that we can use when we refer to countries and their subdivisions. However, it does not define the names of countries – this information comes from United Nations sources (Terminology Bulletin Country Names and the Country and Region Codes for Statistical Use maintained by the United Nations Statistics Divisions).
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.
This package does not include an implementation of part-3, Code for formerly used names of countries.
For notes on the design of the API, see the repository README.
This example shows the use of the part-1 Country Code.
use codes_iso_3166::part_1::CountryCode;
let country = CountryCode::from_str("AG").unwrap();
assert_eq!(country.alpha_2_code(), "AG");
assert_eq!(country.short_name(), "Antigua and Barbuda");
By default only the serde
feature is enabled, and part-1 two-letter
language codes.
serde
- Enables serialization of the different Language Code types.alpha_3_code
- Adds the CountryCode::alpha_3_code
method.numeric_code
- Adds the CountryCode::numeric_code
method.independent
- Adds the CountryCode::independent
method.status
- Adds the CountryCode::status
method.full_name
- Adds the CountryCode::full_name
method.local_names
- Adds the CountryCode::local_short_name
and
CountryCode::local_full_name
methods.languages
- Adds the CountryCode::administrative_language
and
CountryCode::languages
methods (requires package codes-iso-639
).formerly
- Adds the CountryCode::former_short_name
and
CountryCode::former_alpha_3_code
methods.part_2
- Adds the corresponding module and SubdivisionCode
.
categories
- Adds the SubdivisionCode::category_code
method
and SubdivisionCategoryCode
type.territories
- Adds the TerritoryCode
type.languages
- Adds the SubdivisionCode::name_language
method.Note that the method CountryCode::local_full_name
requires both
local_names
and full_name
features.
While ISO licenses the 3166 tables freely, access to the whole data tables is via subscription, and so there is not currently a way to download the tables periodically to keep up-to-date.
Version 0.1.5
build
module in codes-commonVersion 0.1.4
Standardized
and FixedLengthCode
traits.codes-common
CSV handling framework.Version 0.1.3
Version 0.1.2
ALL_CODES
constant for all relevant types.indices
modules to part 1 and 2, partial implementations.Version 0.1.1
formerly_alpha_3_code
and formerly_short_name
methods to part_1.local_short_name
and local_full_name
methods to part_1.Version 0.1.0