1 个不稳定版本
使用旧的 Rust 2015
0.1.0 | 2017 年 8 月 3 日 |
---|
#43 在 #wiki
17KB
308 代码行数(不含注释)
PalmDB 解析器 for Rust
这个软件包实现了一个简单的 PalmDB 解析器。为什么?因为 .mobi 文件使用它,我想生成 .mobi 文件,第一步是熟悉该格式。下一步将是添加 PalmDB 的生成器,以及 Mobi 的解析器和生成器。
示例
extern crate palmdb;
use std::fs::File;
use std::io::{self, Read};
use palmdb::PalmDB;
fn run() -> Result<(), io::Error> {
let mut f = File::open("/path/to/palmdb/file")?;
let mut input = vec![];
f.read_to_end(&mut input)?;
let db = PalmDB::parse(&input).expect("Could not parse db file");
}
fn main() {
if let Err(_) = run() {
::std::process::exit(1);
}
}
lib.rs
:
PalmDB 格式的解析器
此代码是基于 MobileRead wiki 上的规范创建的:[https://wiki.mobileread.com/wiki/PDB#Palm_Database_Format](https://wiki.mobileread.com/...),以及 Calibre 实现中的以下部分:[https://github.com/kovidgoyal/calibre/blob/e333001d31dc49102fe5178bd2a8af4f06962fac/src/calibre/ebooks/pdb/header.py](https://github.com/kovidgoyal/calibre/...)
示例
extern crate palmdb;
use palmdb::PalmDB;
use std::fs::File;
use std::io::Read;
let mut db_file = File::open("/path/to/some/palmdb/file")?;
let mut input = vec![];
db_file.read_to_end(&mut input)?;
let db = PalmDB::parse(&input).expect("Couldn't parse DB");
依赖项
~3.5–5.5MB
~115K SLoC