#![allow(clippy::module_inception)]
use std::marker::PhantomData;
use tokio::sync::mpsc;
use surrealcs_kernel::messages::client::message::TransactionMessage;
#[derive(Debug)]
pub struct NotStarted;
#[derive(Debug)]
pub struct InProgress;
#[derive(Debug)]
pub struct Committed;
#[derive(Debug)]
pub struct RolledBack;
#[derive(Debug)]
pub struct Any;
#[derive(Debug)]
pub struct Transaction<State> {
pub client_id: usize,
pub server_id: Option<usize>,
pub receiver: mpsc::Receiver<TransactionMessage>,
pub sender: mpsc::Sender<TransactionMessage>,
pub connection_id: String,
pub transaction_id: String,
pub state: PhantomData<State>,
}