use crate::{transaction_manager::TransactionManager, txn_key_manager::TxnCommandKeys};
#[derive(Debug, Clone)]
pub struct TxnQueuedCommandInfo {
pub name: &'static str,
pub arity: i32,
pub allowed_in_txn: bool,
pub is_sub_command: bool,
pub keys: Option<TxnCommandKeys>,
}
pub struct TxnProcHandle {
pub name: &'static str,
pub arity: i32,
}
pub trait TxnProcResolver<S: ?Sized> {
fn get_custom_transaction_procedure(&self, txn_id: u8) -> Option<TxnProcHandle>;
fn try_transaction_proc(
&mut self,
txn_id: u8,
txn_manager: &mut TransactionManager,
session: &mut S,
) -> bool;
}