use crate::error::{PrepareResult, XaResult};
use crate::flags::XaFlags;
use crate::xid::Xid;
pub trait XaResource: Send + Sync {
fn xa_start(&self, xid: &Xid, flags: XaFlags) -> XaResult<()>;
fn xa_end(&self, xid: &Xid, flags: XaFlags) -> XaResult<()>;
fn xa_prepare(&self, xid: &Xid, flags: XaFlags) -> XaResult<PrepareResult>;
fn xa_commit(&self, xid: &Xid, flags: XaFlags) -> XaResult<()>;
fn xa_rollback(&self, xid: &Xid, flags: XaFlags) -> XaResult<()>;
fn xa_recover(&self, flags: XaFlags) -> XaResult<Vec<Xid>>;
fn xa_forget(&self, xid: &Xid, flags: XaFlags) -> XaResult<()>;
}