Skip to main content

Module api

Module api 

Source
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§

AltiumCfb
Wrapper around CFB providing Altium-specific convenience methods.
AltiumDocument
Unified entry point for working with Altium files.
Block
A raw block from a size-prefixed stream.
StorageInfo
Information about a storage (directory) in the CFB container.
StreamInfo
Information about a stream in the CFB container.

Enums§

AltiumFileType
Detected Altium file type.