Handling Operations
The execute_mutation_operation function is responsible for handling a single MutationOperation, and returning the corresponding MutationOperationResults:
fn execute_mutation_operation(
state: &mut AppState,
collection_relationships: &BTreeMap<models::RelationshipName, models::Relationship>,
operation: &models::MutationOperation,
) -> Result<models::MutationOperationResults> {
match operation {
models::MutationOperation::Procedure {
name,
arguments,
fields,
} => execute_procedure(state, name, arguments, fields, collection_relationships),
}
}
The function matches on the type of the operation, and delegates to the appropriate function. Currently, the only type of operation is Procedure, so the function delegates to the execute_procedure function. In the next section, we will break down the implementation of that function.