Skip to main content

Module mirror

Module mirror 

Source

Structs§

RCell
FFI-safe mirror of Cell — a single cell in a Table reading. Three parallel payload fields; the active one is selected by kind. Inactive fields carry default values that are never read.
RHardwareDevice
FFI-stable mirror of linsight_core::HardwareDevice. The plugin emits these alongside its sensors; the daemon validates each one before integrating into its registry.
RReading
FFI-safe mirror of Reading — every sample a plugin returns is one of these variants, selected by kind. The four payload fields (scalar / counter / state / table) live alongside the discriminant and are read individually based on kind. Inactive fields carry defaults that callers must not read.
RSensorId
FFI-safe mirror of SensorId. Carries an opaque UTF-8 string; plugins should construct via SensorId::new(...).into() rather than touching the value field directly.
RTableRow
FFI-safe mirror of TableRow — one row of an arbitrary-width [RReading::Table].
RUnit
FFI-safe mirror of Unit. Encoded as a kind discriminant plus a custom payload that is Some(label) only when kind == Custom. All other variants set custom: None.

Enums§

RCategory
FFI-safe mirror of Category. Same wire-format-stable contract as RSensorKind.
RCellKind
Discriminant for RCell.
RHardwareCategoryKind
FFI-stable discriminant for linsight_core::HardwareCategory. Per ADR-0001 v3 lessons, ALL discriminants are #[repr(u8)] unit-only enums; payload-bearing variants live on a sibling struct (see RHardwareDevice). This avoids the stabby match_owned release-mode bug entirely.
RReadingKind
Discriminant for RReading.
RSensorKind
FFI-safe mirror of SensorKind. Unit-only enum encoded as a single byte — adding a new variant is a wire-format breaking change.
RUnitKind
Discriminant for RUnit. Unit-only enum, fixed #[repr(u8)] layout; new variants are wire-format-breaking and require an ABI bump.