4 个版本
0.2.2 | 2023年9月24日 |
---|---|
0.2.1 | 2023年9月1日 |
0.2.0 | 2023年9月1日 |
0.1.0 | 2023年6月25日 |
在 解析器实现 中排名第 1388
在 4 个crate中使用
300KB
2K SLoC
包含 (Zip 文件,83KB) tests/data/rzb___311619_002_5_8630.gldf,(Zip 文件,26KB) tests/data/test/geo/recessed_round.l3d,(Zip 文件,33KB) tests/data/test.gldf,(Zip 文件,2KB) tests/data/R2MCOBSIK-30.gldf
gldf-rs
处理 GLDF
发布说明:0.2.2
- 添加了对 meta-information.xml 的支持
0.2.1
- 为主页添加了更好的文档
- 为了支持 wasm,需要进行一些重构,以使用 reqwest::blocking
0.2.0
- 重构 gldf.rs 为子模块
- 添加了对 BOM 编码的 UTF8 product.xml 的支持
- 添加了对 url 文件类型的支持
- 添加了更好的文档
一个跨平台的 GLDF 处理库。
用于 GLDF 的新灯具/传感器容器定义。
基本上 .gldf 是一个 zip 容器,包含用于定义的 product.xml
以及所需的二进制文件,例如图像和一些 Eulumdat / 或 IES 文件,以及表征灯具的 3D 模型。
更多
这个 Rust 库现在可以直接从 .gldf 容器中读取 product.xml 定义,并能以 JSON 格式表示内容,这是将内容输入搜索引擎或以 JSON 存储的常用方式,尤其是 Postgres。
let loaded: GldfProduct = GldfProduct::load_gldf("./tests/data/test.gldf").unwrap();
println!("{:?}", loaded);
// Display pretty printed XML
let x_serialized = loaded.to_xml().unwrap();
println!("{}", x_serialized);
let json_str = loaded.to_json().unwrap();
println!("{}", json_str);
let j_loaded: GldfProduct = GldfProduct::from_json(&json_str).unwrap();
let x_reserialized = j_loaded.to_xml().unwrap();
println!("{}", x_reserialized);
assert_eq!(x_serialized, x_reserialized);
通过 OK,所以我们能够读取 xml,转换为 JSON,然后再转换回相同的 xml。
目前已经有了一些实现
let phot_files = loaded.get_phot_files().unwrap();
let mut ldc_contents: Vec<String> = Vec::new();
for f in phot_files.iter(){
let mut ldc_content = "".to_owned();
let file_id = f.id.to_string();
ldc_content.push_str(&loaded.get_ldc_by_id(file_id).unwrap().to_owned());
ldc_contents.push(ldc_content);
println!("{}", f.file_name)
}
Here it is shown how to read the ldc files from the GLDF Container.
依赖项
~8–24MB
~335K SLoC