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

◆ execute_with_grammar() [2/2]

template<ComputeData InputType>
Datum< InputType > MayaFlux::Yantra::GrammarAwareComputeMatrix::execute_with_grammar ( const std::string &  rule_name,
const Datum< InputType > &  input,
const ExecutionContext context = {} 
)
inline

Execute a named grammar rule explicitly by name.

Template Parameters
InputTypeThe input data type.
Parameters
rule_nameName of the grammar rule to execute.
inputInput data to process.
contextExecution context containing parameters and metadata.
Returns
Processed data after rule application, or original input if the rule is not found or returns an incompatible type.

Definition at line 518 of file ComputePipeline.hpp.

521 {})
522 {
523 Datum<InputType> current = input;
524 if (auto rule_result = m_grammar->execute_rule(rule_name, current, context)) {
525 auto cast_result = safe_any_cast<Datum<InputType>>(*rule_result);
526 if (cast_result) {
527 current = *cast_result.value;
528 } else {
529 MF_WARN(
532 "Grammar rule '{}' returned incompatible type: {}",
533 rule_name,
534 cast_result.error);
535 }
536 } else {
537 MF_WARN(
540 "Grammar rule '{}' not found",
541 rule_name);
542 }
543 return current;
544 }
#define MF_WARN(comp, ctx,...)
std::shared_ptr< ComputationGrammar > m_grammar
Grammar instance for rule-based operation selection.
@ Runtime
General runtime operations (default fallback)
@ Yantra
DSP algorithms, computational units, matrix operations, Grammar.