Crates.io | arxiv |
lib.rs | arxiv |
version | 0.2.0 |
source | src |
created_at | 2023-03-28 08:26:40.39698 |
updated_at | 2023-04-29 03:31:51.483057 |
description | Rust library to parse arXiv identifiers and references |
homepage | https://github.com/acmuta-research/arxiv-rs |
repository | https://github.com/acmuta-research/arxiv-rs |
max_upload_size | |
id | 822847 |
size | 47,091 |
A Rust library for parsing arXiv
categories, identifiers and references.
Run the following command in the terminal:
cargo add arxiv
Or, add this to Cargo.toml
:
[dependencies]
arxiv = "0.2"
use std::str::FromStr;
use arxiv::*;
// Parse an arXiv identifier
let id = ArxivId::from_str("arXiv:9912.12345v2").unwrap();
assert_eq!(id.month(), 12);
assert_eq!(id.year(), 2099);
assert_eq!(id.number(), "12345");
assert_eq!(id.version(), Some(2));
// Parse an arXiv category
let category = ArxivCategoryId::from_str("astro-ph.HE").unwrap();
assert_eq!(category.group(), ArxivGroup::Physics);
assert_eq!(category.archive(), ArxivArchive::AstroPh);
assert_eq!(category.subject(), String::from("HE"));
// Parse an arXiv stamp
let stamp = ArxivStamp::from_str("arXiv:0706.0001v1 [q-bio.CB] 1 Jun 2007").unwrap();
assert_eq!(stamp.category(), Some(&ArxivCategoryId::try_new(ArxivArchive::QBio, "CB").unwrap()));
assert_eq!(stamp.submitted().year(), 2007);
Licensed under either of
LICENSE-APACHE
or http://www.apache.org/licenses/LICENSE-2.0)LICENSE-MIT
or http://opensource.org/licenses/MIT)at your option.
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.