australia-oceania-antarctica

Crates.ioaustralia-oceania-antarctica
lib.rsaustralia-oceania-antarctica
version
sourcesrc
created_at2024-12-19 17:27:44.888173
updated_at2025-02-06 22:41:30.133517
descriptionA Rust crate providing enums and conversions for Australian, Oceanian countries, Antarctica and their subregions, analogous to the Europe crate.
homepage
repositoryhttps://github.com/klebs6/klebs-general
max_upload_size
id1489373
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
(klebs6)

documentation

https://docs.rs/australia-oceania-antarctica

README

australia-oceania-antarctica Crate

The australia-oceania-antarctica crate provides an enumeration of countries and special regions in the Australia/Oceania/Antarctica area, analogous to the africa crate.

Features

  • Comprehensive Enumeration: Includes Australia, numerous island states in Oceania, and Antarctica, as well as special territories like French Polynesia and Niue.

  • Conversions to/from Country: Converts region variants to Country where possible. Returns detailed errors for unsupported territories or combined regions.

  • ISO Codes and Abbreviations: Each variant can produce abbreviations, and when converting to Country you can obtain ISO codes (if a direct mapping exists).

  • Serialization/Deserialization: Supports serde for easy serialization to and from JSON:

    { "country": "Samoa" }
    

    deserializes back into AustraliaOceaniaAntarcticaRegion::Samoa.

  • Error Handling: Employs robust error handling returning typed errors (AoaRegionConversionError).

Example

use australia_oceania_antarctica::AustraliaOceaniaAntarcticaRegion;
use std::convert::TryInto;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let region = AustraliaOceaniaAntarcticaRegion::NewZealand;
    let country = region.try_into()?; // Convert to Country
    println!("Country: {:?}", country);

    let json = serde_json::to_string(&region)?;
    println!("Serialized: {}", json);

    let deserialized: AustraliaOceaniaAntarcticaRegion = serde_json::from_str(&json)?;
    println!("Deserialized: {:?}", deserialized);

    Ok(())
}

Testing

Run the tests with:

cargo test

License

This project is licensed under the MIT License - see the LICENSE file for details.

Commit count: 357

cargo fmt