26个版本
0.8.0 | 2022年12月11日 |
---|---|
0.7.0 | 2022年1月8日 |
0.6.0 | 2021年10月31日 |
0.5.1 | 2020年12月7日 |
0.2.4 | 2019年9月2日 |
#1117 在 解析器实现 中
122 每月下载量
155KB
3K SLoC
mobi-rs
用法
- 添加到
Cargo.toml
[dependencies]
mobi = "0.8"
main.rs
use mobi::{Mobi, MobiError};
fn main() -> Result<(), MobiError> {
let book = vec![0, 0, 0];
// You can either create a Mobi struct from a slice
let m = Mobi::new(&book)?;
// Or from an instance of io::Read
let stdin = std::io::stdin();
let mut handle = stdin.lock();
let m = Mobi::from_read(&mut handle)?;
// Or from filesystem
let m = Mobi::from_path("/some/path/to/book.mobi")?;
// Access metadata
let title = m.title();
let author = m.author().unwrap_or_default();
let publisher = m.publisher().unwrap_or_default();
let desc = m.description().unwrap_or_default();
let isbn = m.isbn().unwrap_or_default();
let pub_date = m.publish_date().unwrap_or_default();
let contributor = m.contributor().unwrap_or_default();
// Access Headers
let metadata = &m.metadata;
let header = &metadata.header; // Normal Header
let pdheader = &metadata.palmdoc; // PalmDOC Header
let mheader = &metadata.mobi; // MOBI Header
let exth = &metadata.exth; // Extra Header
// Access content
let content = m.content_as_string();
Ok(())
}
许可证
感谢
kroo 提供灵感和想法。
依赖关系
~4MB
~68K SLoC