Skip to main content

derive_dataframe_row

Function derive_dataframe_row 

Source
pub fn derive_dataframe_row(input: DeriveInput) -> Result<TokenStream>
Expand description

Derive DataFrameRow: generates a companion DataFrame type with collection fields.

§Requirements

For structs: the type must implement IntoList. For enums: all variants must have named fields.

§Generated Items

For a struct Measurement { time: f64, value: f64 }:

  • Struct MeasurementDataFrame { time: Vec<f64>, value: Vec<f64> }
  • impl IntoDataFrame for MeasurementDataFrame
  • impl From<Vec<Measurement>> for MeasurementDataFrame
  • impl IntoIterator for MeasurementDataFrame
  • Associated methods on Measurement:
    • to_dataframe(Vec<Self>) -> MeasurementDataFrame
    • from_dataframe(MeasurementDataFrame) -> Vec<Self>

For an enum:

  • Companion struct with Vec<Option<T>> columns (field-name union)
  • Optional tag column for variant discrimination
  • impl From<Vec<Enum>> for EnumDataFrame
  • impl IntoDataFrame for EnumDataFrame
  • Associated to_dataframe method

§Attributes

  • #[dataframe(name = "CustomName")] — Custom companion type name
  • #[dataframe(align)] — Enum alignment mode (accepted but implicit)
  • #[dataframe(tag = "col")] — Add variant discriminator column

Both struct and enum companion types get from_rows() (sequential) and from_rows_par() (parallel, #[cfg(feature = "rayon")]) methods automatically.