pub trait Entity: Sync {
// Required methods
fn get_table_name(&self) -> &'static str;
fn get_primary_fields_name(&self) -> Vec<String>;
fn get_body_fields_name(&self) -> Vec<String>;
fn get_primary_args(&self) -> AnyArguments<'_>;
fn get_body_args(&self) -> AnyArguments<'_>;
fn any_arguments_of_insert(&self) -> AnyArguments<'_>;
fn any_arguments_of_upsert(&self) -> AnyArguments<'_>;
fn any_arguments_of_update(&self) -> AnyArguments<'_>;
fn from_any_row(row: AnyRow) -> Result<Self, SqlxError>
where Self: Sized;
}