Expand description
Regulatory, standards-setting, and maintaining agencies.
Agency describes an organisation with a name, optional abbreviation,
an AgencyKind classification, and an optional Jurisdiction.
Several well-known agencies are available as convenience constructors:
agency_itu, agency_iaru, agency_arrl, agency_fcc,
agency_ofcom, agency_rsgb.
§Examples
use rfham_core::agency::{agency_fcc, agency_itu, AgencyKind};
use rfham_core::country::CountryCode;
use std::str::FromStr;
let itu = agency_itu();
assert_eq!(itu.abbreviation().map(|s| s.as_str()), Some("ITU"));
assert!(itu.kind().is_standards_setting());
let fcc = agency_fcc();
assert!(fcc.kind().is_regulatory());
let us = CountryCode::from_str("US").unwrap();
assert_eq!(fcc.within_jurisdiction(&us), Some(true));
let gb = CountryCode::from_str("GB").unwrap();
assert_eq!(fcc.within_jurisdiction(&gb), Some(false));AgencyKind serialises to its short string form:
use rfham_core::agency::AgencyKind;
use std::str::FromStr;
assert_eq!(AgencyKind::Regulatory.to_string(), "regulatory");
assert_eq!(AgencyKind::from_str("maintaining").unwrap(), AgencyKind::Maintaining);