Skip to main content

Module dataframe_derive

Module dataframe_derive 

Source
Expand description

Derive macros for bidirectional row ↔ dataframe conversions.

Supports both structs (direct field mapping) and enums (field-name union across variants with Option<T> fill for missing fields).

ModulesΒ§

enum_expansion πŸ”’
Enum-specific DataFrame derive expansion.

StructsΒ§

AutoExpandVecData πŸ”’
Data for ResolvedField::AutoExpandVec.
ColumnRegistry πŸ”’
Accumulates unique columns for an enum-to-dataframe unified schema.
DataFrameAttrs πŸ”’
Parsed container-level #[dataframe(...)] attributes.
EnumAutoExpandVecData πŸ”’
Data for EnumResolvedField::AutoExpandVec.
EnumExpandedFixedData πŸ”’
Data for EnumResolvedField::ExpandedFixed.
EnumExpandedVecData πŸ”’
Data for EnumResolvedField::ExpandedVec.
EnumMapFieldData πŸ”’
Data for EnumResolvedField::Map.
EnumSingleFieldData πŸ”’
Data for EnumResolvedField::Single.
EnumStructFieldData πŸ”’
Data for EnumResolvedField::Struct.
ExpandedFixedData πŸ”’
Data for ResolvedField::ExpandedFixed.
ExpandedVecData πŸ”’
Data for ResolvedField::ExpandedVec.
FieldAttrs πŸ”’
Parsed field-level #[dataframe(...)] attributes.
MapFieldData πŸ”’
Data for ResolvedField::Map (struct path, non-String-keyed maps, #919).
ResolvedColumn πŸ”’
A resolved column in the unified schema across all enum variants.
SingleFieldData πŸ”’
Data for ResolvedField::Single.
StructFieldData πŸ”’
Data for ResolvedField::Struct.
VariantInfo πŸ”’
Parsed and resolved information about a single enum variant for DataFrame codegen.

EnumsΒ§

EnumResolvedField πŸ”’
A resolved enum field ready for codegen – either a single column or expanded from an array/Vec into multiple suffixed columns.
FieldTypeKind πŸ”’
Classification of a field type for DataFrame column expansion.
ResolvedField πŸ”’
A resolved struct field ready for codegen – determines how this field maps to DataFrame companion struct columns.
VariantShape πŸ”’
Describes the shape of an enum variant’s fields.

ConstantsΒ§

READER_SCALAR_NAMES πŸ”’
Scalar element types whose Vec<T> (and Vec<Option<T>>) round-trips through TryFromSexp β€” the supported field types for the parallel from-R reader (try_from_dataframe_par). This is intentionally narrower than FieldTypeKind::Scalar: set/opaque collection types (HashSet<…>, BTreeSet<…>) also classify as Scalar but do NOT implement Vec<_>: TryFromSexp, so they must be excluded from the reader path.

FunctionsΒ§

classify_field_type πŸ”’
Classify a field type for DataFrame column expansion.
derive_dataframe_row
Derive DataFrameRow: generates a companion DataFrame type with collection fields.
derive_struct_dataframe πŸ”’
Generate DataFrameRow expansion for struct types.
field_is_borrowed_ref πŸ”’
True if ty is a borrowed reference (&[T], &[T; N], &str, …). Such expansion fields can’t be reconstructed by value in the Rβ†’Rust reader.
field_reader_capable πŸ”’
True if a resolved struct field can be read back out of an R data.frame.
generic_type_arg_count πŸ”’
Number of type arguments on ty’s last path segment (0 when not angle-bracketed). Rejects HashMap<K, V, S> custom-hasher maps from the reader path β€” the Vec<HashMap<String, V>>: TryFromSexp impl only covers the default hasher.
is_bare_reader_scalar_ty πŸ”’
True if ty is a bare known-scalar ident (no Option, no generic args).
is_reader_scalar_ty πŸ”’
True if ty is a bare known-scalar ident, or Option<bare-known-scalar>.
is_string_ty πŸ”’
True if ty’s last path segment is the bare ident String (path-identity check, same convention as classify_field_type).
parse_dataframe_attrs πŸ”’
Parse container-level #[dataframe(...)] attributes from the derive input.
parse_field_attrs πŸ”’
Parse field-level #[dataframe(...)] attributes from a syn::Field.
resolve_struct_field πŸ”’
Resolve a struct field into a ResolvedField, applying field attributes.