Skip to main content

Crate zerodds_flatdata_derive

Crate zerodds_flatdata_derive 

Source
Expand description

Crate zerodds-flatdata-derive. Safety classification: STANDARD (proc-macro generiert unsafe impl FlatStruct — Layout-Garantien werden vom Macro selbst geprueft, nicht vom Caller-Kommentar).

#[derive(FlatStruct)] fuer zerodds_flatdata::FlatStruct.

Spec: docs/specs/zerodds-flatdata-1.0.md §1.2 (Derive-Macro).

§Schichten-Position

Layer 4 — Core Services (proc-macro fuer zerodds-flatdata).

§Public API (Stand 1.0.0-rc.1)

  • #[derive(FlatStruct)] — generiert unsafe impl FlatStruct for T mit TYPE_HASH = sha256(type_name + field_layout)[..16].

§Compile-Time-Checks

Der Macro lehnt mit compile_error! ab, wenn:

  • T ist enum oder union (Layout nicht stable).
  • T traegt weder #[repr(C)] noch #[repr(transparent)] (Default-Repr ist undefiniert).

Die Copy + 'static + Send + Sync-Bounds werden vom Trait selbst erzwungen — der Compiler emittiert verstaendliche Fehler beim Versuch, ein Non-Copy-Type zu deriven.

§Beispiel

use zerodds_flatdata_derive::FlatStruct;

#[derive(Copy, Clone, FlatStruct)]
#[repr(C)]
struct Pose { x: f64, y: f64, z: f64 }

Derive Macros§

FlatStruct
#[derive(FlatStruct)] — generiert unsafe impl FlatStruct for T.