enum ResolvedField {
Single(Box<SingleFieldData>),
ExpandedFixed(Box<ExpandedFixedData>),
ExpandedVec(Box<ExpandedVecData>),
AutoExpandVec(Box<AutoExpandVecData>),
Struct(Box<StructFieldData>),
Map(Box<MapFieldData>),
}Expand description
A resolved struct field ready for codegen – determines how this field maps to DataFrame companion struct columns.
Each variant represents a different expansion strategy:
Single: one field -> oneVec<T>columnExpandedFixed:[T; N]-> N columns (name_1..name_N) at compile timeExpandedVec:Vec<T>+width = N-> NVec<Option<T>>columnsAutoExpandVec:Vec<T>+expand-> dynamic column count at runtime
Variants§
Single(Box<SingleFieldData>)
Single column: name → Vec<ty>.
ExpandedFixed(Box<ExpandedFixedData>)
Expanded fixed array: name: [T; N] → name_1..name_N.
ExpandedVec(Box<ExpandedVecData>)
Expanded variable vec with pinned width: name: Vec<T> + width = N.
AutoExpandVec(Box<AutoExpandVecData>)
Auto-expanded Vec<T>/Box<[T]>: column count determined at runtime from max row length.
Struct(Box<StructFieldData>)
Struct field whose inner type implements DataFrameRow (issue #485).
Companion holds Vec<Inner>; into_data_frame calls Inner::to_dataframe
and flattens columns under the <base>_ prefix.
Map(Box<MapFieldData>)
Non-String-keyed HashMap<K,V> / BTreeMap<K,V> field (#919).
Expands to two parallel list-columns <base>_keys / <base>_values,
each a Vec<Vec<K>> / Vec<Vec<V>> (VECSXP of typed vectors). The
reader zips keys[i] with values[i] back into the map type.
Auto Trait Implementations§
impl !Send for ResolvedField
impl !Sync for ResolvedField
impl Freeze for ResolvedField
impl RefUnwindSafe for ResolvedField
impl Unpin for ResolvedField
impl UnsafeUnpin for ResolvedField
impl UnwindSafe for ResolvedField
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> SizeHint for Twhere
T: ?Sized,
impl<T> SizeHint for Twhere
T: ?Sized,
Source§default fn lower_bound(&self) -> usize
default fn lower_bound(&self) -> usize
core_io_internals)[u8; 12] could return any value between 0 and
12 inclusively as a correct implementation. Read moreSource§impl<T> SizedTypeProperties for T
impl<T> SizedTypeProperties for T
Source§#[doc(hidden)]const SIZE: usize = _
#[doc(hidden)]const SIZE: usize = _
sized_type_properties)Source§#[doc(hidden)]const ALIGN: usize = _
#[doc(hidden)]const ALIGN: usize = _
sized_type_properties)Source§#[doc(hidden)]const ALIGNMENT: Alignment = _
#[doc(hidden)]const ALIGNMENT: Alignment = _
ptr_alignment_type)Source§#[doc(hidden)]const IS_ZST: bool = _
#[doc(hidden)]const IS_ZST: bool = _
sized_type_properties)Source§#[doc(hidden)]const LAYOUT: Layout = _
#[doc(hidden)]const LAYOUT: Layout = _
sized_type_properties)Source§#[doc(hidden)]const MAX_SLICE_LEN: usize = _
#[doc(hidden)]const MAX_SLICE_LEN: usize = _
sized_type_properties)[Self]. Read moreLayout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 16 bytes
Size for each variant:
Single: 8 bytesExpandedFixed: 8 bytesExpandedVec: 8 bytesAutoExpandVec: 8 bytesStruct: 8 bytesMap: 8 bytes