cik

Crates.iocik
lib.rscik
version0.1.4
sourcesrc
created_at2022-05-30 15:42:46.489221
updated_at2023-06-09 14:52:59.499061
descriptionSupport for creating and validating CIKs
homepage
repositoryhttps://github.com/gnp/cik-rs.git
max_upload_size
id597043
size24,949
Gregor Purdy (gnp)

documentation

README

cik

A CIK type for working with validated (syntax only) Central Index Keys (CIKs) as defined in the U.S. Securities and Exchange Commission's (SEC) Electronic Data Gathering, Analysis, and Retrieval system (EDGAR) documentation.

A CIK is a number of up to 10 digits length. They are sometimes rendered as strings with or without leading zeros, and sometimes are represented as integers of a sufficient number of bits to represent a 10-digit number (typically 64 bits because the maximum CIK value is 9,999,999,999 and the maximum value of a signed 32-bit integer is only 2,147,483,64; and the maximum value of an unsigned 32-bit integer is still to low at 4,294,967,295).

As of 2022-05-29 the "Company Facts" data set's minimum CIK value is 1,750 and the maximum is 1,923,807. See the "Bulk data" section on the SEC's EDGAR Application Programming Interfaces page for more information on this data set. Such values fit comfortably in 7 decimal digits or 32 bits (signed or unsigned), so you might encounter CIKs stored in values of less than 64 bits.

Nonetheless, this library uses 64-bit values to ensure full conformance with the CIK definition of up to 10 decimal digits.

This crate is part of the Financial Identifiers series:

  • CIK: Central Index Key (SEC EDGAR)
  • CUSIP: Committee on Uniform Security Identification Procedures (ANSI X9.6-2020)
  • ISIN: International Securities Identification Number (ISO 6166:2021)
  • LEI: Legal Entity Identifier (ISO 17442:2020)

Usage

Add this to your Cargo.toml:

[dependencies]
cik = "0.1"

Example

use cik;
let cik_string = "320193";
match cik::parse(cik_string) {
    Ok(cik) => {
        println!("Parsed CIK: {}", cik.to_string()); // "320193"
        println!("  Integer value: {}", cik.value()); // 320193
    }
    Err(err) => panic!("Unable to parse CIK {}: {}", cik_string, err),
}

License

Licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Commit count: 19

cargo fmt