1use brdb::{BrFsReader, Brz, IntoReader};
2use std::path::PathBuf;
3
4fn main() -> Result<(), Box<dyn std::error::Error>> {
6 let path = PathBuf::from("./world.brz");
7
8 let db = Brz::open(path)?.into_reader();
10
11 let data = db.global_data()?;
12 println!("Basic Brick assets: {:?}", data.basic_brick_asset_names);
13 println!("Wire ports: {:?}", data.component_wire_port_names);
14 println!("Component types: {:?}", data.component_type_names);
15 println!("Component structs: {:?}", data.component_data_struct_names);
16 println!("Component schemas: {}", db.components_schema()?);
17
18 let chunks = db.brick_chunk_index(1)?;
19 println!("Brick chunks: {chunks:?}");
20 for chunk in chunks {
21 let soa = db.brick_chunk_soa(1, chunk.index)?;
22 println!("Brick soa: {soa:?}");
23 if chunk.num_components > 0 {
24 let (_soa, components) = db.component_chunk_soa(1, chunk.index)?;
25 for c in components {
26 println!("Component: {c}");
27 }
28 }
29 if chunk.num_wires > 0 {
30 let soa = db.wire_chunk_soa(1, chunk.index)?;
31 println!("Wires soa: {soa}");
32 }
33 }
34
35 println!("Files: {}", db.get_fs()?.render());
36
37 Ok(())
38}