codes-agency

Crates.iocodes-agency
lib.rscodes-agency
version0.1.9
sourcesrc
created_at2022-11-29 19:49:25.106592
updated_at2022-12-25 02:46:54.57845
descriptionThis package provides a common code representing standards agencies
homepage
repositoryhttps://github.com/johnstonskj/rust-codes
max_upload_size
id725620
size14,813
Simon Johnston (johnstonskj)

documentation

https://docs.rs/codes-agency/

README

Crate codes-agency

This package provides a common code representing standards agencies.

crates.io docs.rs

The two core types, [Agency] and [Standard] work together to provide reporting capabilities to other codes project packages. Specifically a package that provides types corresponding to a standard definition can have an instance of the [Standard] struct that describes the standard. This in turn references the [Agency] that controls the standard.

Consider the following example from the ISO 4217 package.

use codes_agency::{Agency, Standard};

// Taken from codes_iso_4217
pub const ISO_4217: Standard = Standard::new_with_long_ref(
    Agency::ISO,
    "4217",
    "ISO 4217:2015",
    "Currency codes",
    "https://www.iso.org/iso-4217-currency-codes.html",
);

assert_eq!(ISO_4217.agency().to_string(), String::from("ISO"));
assert_eq!(ISO_4217.short_ref(), "4217");
assert_eq!(ISO_4217.long_ref(), Some(&"ISO 4217:2015"));
assert_eq!(ISO_4217.title(), "Currency codes");
assert_eq!(ISO_4217.url(), "https://www.iso.org/iso-4217-currency-codes.html");

For notes on the design of the API, see the repository README.

Features

By default only the serde feature is enabled.

  • serde - Enables serialization of the Agency type.

Changes

Version 0.1.9

  • Added new standardized_type macro.

Version 0.1.8

  • Added new Standardized trait.

Version 0.1.7

  • Add the GS1 as a new Agency.

Version 0.1.6

  • Add the UN as a new Agency.

Version 0.1.5

  • Added ALL_CODES constant.

Version 0.1.4

  • Clean-up implementation based on newer codes-common
  • Using new Code trait and macro-created implementation.

Version 0.1.3

  • Added documentation to Agency variants.
  • Renamed Error to be inline with other package naming conventions.

Version 0.1.2

  • Remove the trait Code.
  • Remove some feature flags.
  • Added documentation.
  • Added IANA, IEEE, IETF as agencies.

Version 0.1.1

  • Initial documentation.

Version 0.1.0

  • Initial place-holder release.

TODO

  1. Create a build system from agencies.xml
  2. Add a parent_agency method (ITU is a part of UN)
Commit count: 158

cargo fmt