Expand description
Multi-layer API for Altium file access.
This module provides a layered architecture for working with Altium files:
- Layer 1 (CFB): Low-level CFB wrapper with reverse engineering helpers
- Layer 2 (Generic): Dynamic record access without type knowledge
- Layer 3 (Typed): Strongly-typed access with derive macros
§Quick Start
ⓘ
use altium_format::api::AltiumDocument;
// Open any Altium file
let mut doc = AltiumDocument::open("library.SchLib")?;
// Layer 1: CFB access
for stream in doc.cfb().streams()? {
println!("{}: {} bytes", stream.path, stream.size);
}
// Layer 2: Generic access
let container = doc.records("/Resistor/Data")?;
for record in container.iter() {
println!("{:?}", record.get("LIBREFERENCE"));
}
// Layer 3: Typed access
let component: TypedAccessor<SchComponent> = doc.record_as("/Resistor/Data", 0)?;
println!("Component: {}", component.lib_reference);Re-exports§
pub use generic::BinaryContainer;pub use generic::BinaryRecord;pub use generic::GenericRecord;pub use generic::ParamsContainer;pub use generic::Value;pub use typed::EditTransaction;pub use typed::TypedAccessor;
Modules§
- generic
- Layer 2: Generic record access without type knowledge.
- typed
- Layer 3: Typed deserialization with derive macro support.
- views
- Status: Not Yet Implemented
Structs§
- Altium
Cfb - Wrapper around CFB providing Altium-specific convenience methods.
- Altium
Document - Unified entry point for working with Altium files.
- Block
- A raw block from a size-prefixed stream.
- Storage
Info - Information about a storage (directory) in the CFB container.
- Stream
Info - Information about a stream in the CFB container.
Enums§
- Altium
File Type - Detected Altium file type.