Crates.io | codes-iso-10383 |
lib.rs | codes-iso-10383 |
version | 0.1.8 |
source | src |
created_at | 2022-12-07 00:45:03.152763 |
updated_at | 2022-12-25 02:53:47.452446 |
description | This package contains an implementation of the ISO-10383 Market Identification Code (MIC) specification. |
homepage | |
repository | https://github.com/johnstonskj/rust-codes |
max_upload_size | |
id | 731495 |
size | 1,211,186 |
This package contains an implementation of the ISO 10383 Securities and related financial instruments — Codes for exchanges and market identification (MIC) specification.
ISO 10383 specifies a universal method of identifying exchanges, trading platforms, regulated or non-regulated markets and trade reporting facilities as sources of prices and related information in order to facilitate automated processing.
It is intended for use in any application and communication for identification of places
Note that field descriptions are taken from ISO 10383 Market Identifier Codes - Release 2.0 Factsheet.
For notes on the design of the API, see the repository README.
use codes_iso_10383::{Category, MarketIdCode, Status};
let market = MarketIdCode::XNCM;
assert_eq!(market.code(), "XNCM");
assert_eq!(market.operating_code(), Some(MarketIdCode::XNAS));
assert_eq!(market.is_segment(), true);
assert_eq!(market.status(), Status::Active);
assert_eq!(market.market_category_code(), Some(Category::NSPD));
assert_eq!(market.acronym(), None);
// feature = "real_url"
// assert_eq!(market.website_url(), Some(url::Url::from_str("http://www.nasdaq.com").unwrap()));
// or
// assert_eq!(market.website_url(), Some("http://www.nasdaq.com"));
// feature = "market_name"
// assert_eq!(market.market_name(), "NASDAQ CAPITAL MARKET");
// feature = "location"
// assert_eq!(market.country_code(), Some(CountryCode::US));
// assert_eq!(market.city(), Some("NEW YORK"));
// feature = "legal_entity"
// assert_eq!(market.legal_entity_name(), None);
// assert_eq!(market.legal_entity_id(), None);
// feature = "dates"
// assert_eq!(market.creation_date(), "2008-02-25");
// assert_eq!(market.last_update_date(), Some("2008-02-25"));
// assert_eq!(market.last_validation_date(), None);
// assert_eq!(market.expiration_date(), None);
// feature = "comments"
// assert_eq!(market.comments(), Some("..."));
The following demonstrates the from_str_extended
which searches the
acronym values if there is not a direct MIC match via from_str
.
use codes_iso_10383::MarketIdCode;
use std::str::FromStr;
assert!(MarketIdCode::from_str("NASDAQ").is_err());
let market = MarketIdCode::from_str_extended("NASDAQ");
assert!(market.is_ok());
assert_eq!(market.unwrap().code(), "XNAS");
By default only the serde
feature is enabled, the MarketIdCode::code
and
MarketIdCode::operating_code
, and MarketIdCode::is_segment
methods cannot be excluded.
serde
- Enables serialization of the MarketIdCode
type.market_name
- Adds the MarketIdCode::market_name
method.location
- Adds the MarketIdCode::country_code
and MarketIdCode::city
methods.legal_entity
- Adds the MarketIdCode::legal_entity_id
and MarketIdCode::legal_entity_name
methods.real_url - Uses the
Urltype from the
urlcrate for the
MarketIdCode::website_url` method.dates
- Adds the MarketIdCode::creation_date
, MarketIdCode::last_update_date
, MarketIdCode::last_validation_date
, and MarketIdCode::expiration_date
methods.real_dates
- Used the DateTime<Utc>
types from the chrono
crate for date functions Work In Progresscomments
- Adds the MarketIdCode::comments
method.Version 0.1.8
build
module in codes-commonVersion 0.1.7
Standardized
and FixedLengthCode
traits.Version 0.1.6
from_str_extended
method.Version 0.1.5
country_code
and website_url
.Version 0.1.4
Version 0.1.3
codes-common
CSV handling framework.Version 0.1.2
ALL_CODES
constant.Version 0.1.1
codes-common
Code
trait and macro-created implementation.Version 0.1.0
TBD