#standards #codes #iso-4217 #definition #reporting #agency #agencies

codes-agency

This package provides a common code representing standards agencies

9 releases

0.1.9 Dec 25, 2022
0.1.8 Dec 22, 2022
0.1.2 Nov 30, 2022

#551 in Encoding

Download history 875/week @ 2024-07-21 914/week @ 2024-07-28 739/week @ 2024-08-04 676/week @ 2024-08-11 818/week @ 2024-08-18 1163/week @ 2024-08-25 1114/week @ 2024-09-01 1261/week @ 2024-09-08 1029/week @ 2024-09-15 1313/week @ 2024-09-22 972/week @ 2024-09-29 572/week @ 2024-10-06 856/week @ 2024-10-13 904/week @ 2024-10-20 769/week @ 2024-10-27 1039/week @ 2024-11-03

3,597 downloads per month
Used in 14 crates (10 directly)

MIT license

39KB
733 lines

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)

Dependencies

~0.4–1MB
~22K SLoC