burn_dispatch/ops/
transaction.rs1use burn_backend::{
2 ExecutionError,
3 ops::{TransactionOps, TransactionPrimitive, TransactionPrimitiveData},
4};
5
6use crate::Dispatch;
7use crate::backends::*;
8
9impl TransactionOps<Self> for Dispatch {
10 async fn tr_execute(
11 transaction: TransactionPrimitive<Self>,
12 ) -> Result<TransactionPrimitiveData, ExecutionError> {
13 let first_tensor = transaction
14 .read_floats
15 .first()
16 .or(transaction.read_ints.first())
17 .or(transaction.read_bools.first());
18
19 match first_tensor {
20 Some(tensor) => {
21 transaction_op!(transaction, tensor)
22 }
23 None => Ok(TransactionPrimitiveData::default()),
24 }
25 }
26}