use lunar_lib::database::{CompareAndSwapTransaction, CustomTransactionError, DatabaseEntry};
pub trait Createable: Sized + DatabaseEntry {
type CreateArgs: Clone;
type Err;
/// Creates a new [`Self`] in the database using [`Self::CreateArgs`]
fn tx_create(
cas_tx: &mut CompareAndSwapTransaction<Self::EntryDb>,
args: Self::CreateArgs,
) -> Result<Self, CustomTransactionError<Self::Err>>;
}