4 releases (2 stable)
1.0.1 | Nov 6, 2024 |
---|---|
0.2.0 | Apr 29, 2023 |
0.1.0 | Mar 28, 2023 |
#602 in Parser implementations
39KB
778 lines
arXiv
A Rust library for parsing arXiv
categories, identifiers and references.
Install
cargo add arxiv
Usage
Identifiers
use arxiv::{ArticleId, ArticleVersion};
let id = ArticleId::try_from("arXiv:9912.12345v2").unwrap();
assert_eq!(id.month(), 12);
assert_eq!(id.year(), 2099);
assert_eq!(id.number(), "12345");
assert_eq!(id.version(), ArticleVersion::Num(2));
Categories
use arxiv::{Archive, CategoryId, Group};
let category = CategoryId::try_from("astro-ph.HE").unwrap();
assert_eq!(category.group(), Group::Physics);
assert_eq!(category.archive(), Archive::AstroPh);
assert_eq!(category.subject(), "HE");
Stamps
use arxiv::{Archive, CategoryId, Stamp};
let stamp = Stamp::try_from("arXiv:0706.0001v1 [q-bio.CB] 1 Jun 2007").unwrap();
assert_eq!(stamp.category, CategoryId::try_new(Archive::QBio, "CB").unwrap());
assert_eq!(stamp.submitted.year(), 2007);
Feature flags
The crate has the following feature flags:
url
(default): Enables converting types into URLs where possible, such as converting an article identifier into a URL that leads to its abstract page.
License
Licensed under either of
- Apache License, Version 2.0 (
LICENSE-APACHE
or http://www.apache.org/licenses/LICENSE-2.0) - MIT license (
LICENSE-MIT
or http://opensource.org/licenses/MIT)
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.
Dependencies
~5.5MB
~88K SLoC