MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ get_structure_info()

template<OperationReadyData T>
static DataStructureInfo MayaFlux::Yantra::OperationHelper::get_structure_info ( const T &  compute_data)
inlinestatic

Populate DataStructureInfo from a Datum without extracting spans.

Template Parameters
TOperationReadyData type.
Parameters
compute_dataSource Datum.
Returns
DataStructureInfo with original_type, dimensions, modality populated.

Definition at line 492 of file OperationHelper.hpp.

493 {
494 if constexpr (is_IO<T>::value) {
495 DataStructureInfo info {};
496 info.original_type = std::type_index(typeid(std::decay_t<decltype(compute_data.data)>));
497 info.dimensions = compute_data.dimensions;
498 info.modality = compute_data.modality;
499 if constexpr (CompositeData<std::decay_t<decltype(compute_data.data)>>)
500 info.composite_layout = extract_composite_data(compute_data.data).layout();
501 return info;
502 } else {
503 DataStructureInfo info {};
504 info.original_type = std::type_index(typeid(T));
505 auto [dims, mod] = infer_structure(compute_data);
506 info.dimensions = std::move(dims);
507 info.modality = mod;
508 if constexpr (CompositeData<T>)
509 info.composite_layout = extract_composite_data(compute_data).layout();
510 return info;
511 }
512 }
const CompositeLayout & layout() const noexcept
Finalized layout shared by all elements.
static const Kakshya::CompositeArray & extract_composite_data(const Kakshya::CompositeArray &data) noexcept
Borrow an owning Composite array without converting its fields.
static std::pair< std::vector< Kakshya::DataDimension >, Kakshya::DataModality > infer_structure(const T &data, const std::shared_ptr< Kakshya::SignalSourceContainer > &container=nullptr)
Infer dimensions and modality from any ComputeData type.

References MayaFlux::Yantra::DataStructureInfo::original_type.

Referenced by MayaFlux::Yantra::GpuExecutionContext< InputType, OutputType >::extract_inputs().

+ Here is the caller graph for this function: