#identifier #reference #parse

arxiv

Rust库用于解析arXiv标识符和引用

2个不稳定版本

0.2.0 2023年4月29日
0.1.0 2023年3月28日

#1803 in 解析器实现

Download history 102/week @ 2024-07-27

每月102次下载

MIT/Apache

34KB
728

arXiv

License docs.rs CI Security audit codecov

用于解析arXiv类别、标识符和引用的Rust库。

安装

在终端中运行以下命令

cargo add arxiv

或者,将其添加到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);

许可

许可协议为以下之一

任选其一。

贡献

除非您明确声明,否则根据Apache-2.0许可协议,您有意提交的任何贡献,作为本作品的一部分,应以上述双许可方式发布,不得附加任何额外的条款或条件。

依赖

~745KB
~13K SLoC