altium-format-derive
Procedural macros for the altium-format crate.
This crate provides three derive macros for generating serialization code for Altium Designer file format records.
Macros
AltiumRecord
Generates FromParams, ToParams, FromBinary, and ToBinary trait implementations for Altium record types.
Container attributes:
#[altium(record_id = N)]- Schematic record type ID#[altium(object_id = Variant)]- PCB object ID enum variant#[altium(format = "params"|"binary"|"both")]- Serialization format
Field attributes:
#[altium(flatten)]- Flatten a base type's fields#[altium(param = "KEY")]- Map field to parameter key#[altium(param = "KEY", frac = "KEY_FRAC")]- Integer with fractional part#[altium(param = "KEY", default)]- UseDefault::default()if missing#[altium(param = "KEY", default = value)]- Use specific default value#[altium(param = "KEY", optional)]- Wrap inOption<T>#[altium(binary, ty = "i32le")]- Binary field type#[altium(binary, coord_point)]- Binary coordinate point#[altium(unknown)]- Store unknown parameters (non-destructive editing)#[altium(unknown_binary)]- Store unknown binary bytes#[altium(skip)]- Skip field entirely
Example:
use AltiumRecord;
AltiumBase
Generates HasXxxBase traits for composition-based inheritance patterns.
Attributes:
#[altium(base_name = "Name")]- Name for generated trait (default: struct name)#[altium(extends = "ParentBase")]- Parent base type for trait inheritance
Example:
use AltiumBase;
AltiumEnum
Generates integer conversion traits for enum types.
Attributes:
#[altium(repr = "i32"|"u8"|...)]- Integer representation type#[altium(value = N)]- Map variant to specific integer value#[altium(default)]- Mark variant as default for unknown values
Example:
use AltiumEnum;
Usage
This crate is automatically used when you depend on altium-format. You typically don't need to add it directly to your dependencies.
[]
= "0.1.0" # Includes altium-format-derive
For detailed documentation, see altium-format.
License
GPL-3.0-only