17 个版本
0.2.7 | 2024 年 7 月 9 日 |
---|---|
0.2.6 | 2024 年 7 月 2 日 |
0.2.5 | 2024 年 6 月 28 日 |
0.1.9 | 2024 年 6 月 19 日 |
0.1.5 | 2024 年 5 月 22 日 |
#696 在 解析器实现 中
在 2 crates 中使用
155KB
4.5K SLoC
castep-cell-io
一个帮助解析、编辑和保存 .cell
的 Castep
的 crate。
开发
目前,解析器可以在文件中搜索并解析两个必需的块条目,无论它们的顺序如何:晶格参数(LATTICE_CART 或
LATTICE_ABC
)和离子位置(POSITIONS_FRAC 或
POSITIONS_ABS
)。如果开启功能 TS
,则支持 POSITIONS_XXX_INTERMEDIATE
和 POSITIONS_XXX_PRODUCT
。
注释标记(#
或 !
)后面的内容应该被忽略。注释不应该破坏数据的有效格式。如果注释切断了必要的数据,解析器将失败,就像 castep
接受此类输入 .cell
时会失败一样。
未来将支持更多关键词和数据。
用法
通过 cargo
添加 crate
cargo add castep-cell-parser
在你的代码中
use std::{fs, path::Path};
use castep_cell_parser::{CellParser, CellDocument};
let path = Path::new("SAC_GDY_V.cell");
let input = fs::read_to_string(path).unwrap();
let mut cell_parser = CellParser::from(&input.as_str());
let cell_doc: CellDocument = cell_parser.parse().unwrap();
依赖项
~7.5MB
~154K SLoC