pub trait CodegenBackend: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn generate_row_struct(
&self,
query_name: &str,
columns: &[ResolvedColumn],
) -> Result<String, ScytheError>;
fn generate_model_struct(
&self,
table_name: &str,
columns: &[ResolvedColumn],
) -> Result<String, ScytheError>;
fn generate_query_fn(
&self,
analyzed: &AnalyzedQuery,
struct_name: &str,
columns: &[ResolvedColumn],
params: &[ResolvedParam],
) -> Result<String, ScytheError>;
fn generate_enum_def(
&self,
enum_info: &EnumInfo,
) -> Result<String, ScytheError>;
fn generate_composite_def(
&self,
composite: &CompositeInfo,
) -> Result<String, ScytheError>;
// Provided method
fn file_header(&self) -> String { ... }
}Expand description
Trait that all codegen backends must implement.
Required Methods§
Sourcefn generate_row_struct(
&self,
query_name: &str,
columns: &[ResolvedColumn],
) -> Result<String, ScytheError>
fn generate_row_struct( &self, query_name: &str, columns: &[ResolvedColumn], ) -> Result<String, ScytheError>
Generate a row struct for a query result.
Sourcefn generate_model_struct(
&self,
table_name: &str,
columns: &[ResolvedColumn],
) -> Result<String, ScytheError>
fn generate_model_struct( &self, table_name: &str, columns: &[ResolvedColumn], ) -> Result<String, ScytheError>
Generate a model struct for a table.
Sourcefn generate_query_fn(
&self,
analyzed: &AnalyzedQuery,
struct_name: &str,
columns: &[ResolvedColumn],
params: &[ResolvedParam],
) -> Result<String, ScytheError>
fn generate_query_fn( &self, analyzed: &AnalyzedQuery, struct_name: &str, columns: &[ResolvedColumn], params: &[ResolvedParam], ) -> Result<String, ScytheError>
Generate a query function.
Sourcefn generate_enum_def(&self, enum_info: &EnumInfo) -> Result<String, ScytheError>
fn generate_enum_def(&self, enum_info: &EnumInfo) -> Result<String, ScytheError>
Generate an enum definition.
Sourcefn generate_composite_def(
&self,
composite: &CompositeInfo,
) -> Result<String, ScytheError>
fn generate_composite_def( &self, composite: &CompositeInfo, ) -> Result<String, ScytheError>
Generate a composite type definition.
Provided Methods§
Sourcefn file_header(&self) -> String
fn file_header(&self) -> String
Generate a file-level header (imports, docstring, etc). Returns an empty string by default; backends may override.