1 个不稳定发布
0.1.0 | 2024年4月29日 |
---|
2186 在 解析实现
32KB
741 行
castep-cell-parser
Castep的.cell
解析器。
开发
目前,该解析器可以查找并解析文件中两个必需的块条目,无论它们在文件中的出现顺序如何:晶格参数(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_str(&input);
let cell_doc: CellDocument = cell_parser.parse().unwrap();
依赖项
~3.5MB
~75K SLoC