module rr {
## Compiled program, executable with lutra-runner
@derive(["Debug", "Clone", "enum_as_inner::EnumAsInner"])
type Program: enum {
SqlPostgres: SqlProgram,
SqlDuckDB: SqlProgram,
BytecodeLt: project::br::Program,
}
## Types of a program's input and output
type ProgramType: {
# Type of the program's input
input: project::ir::Ty,
# Type of the program's output
output: project::ir::Ty,
# Definitions that are referenced from input and output types.
defs: [project::ir::TyDef],
}
## SQL program, executable with lutra-runner-postgres
type SqlProgram: {
sql: text,
input_ty: project::ir::Ty,
output_ty: project::ir::Ty,
defs: [project::ir::TyDef],
}
}
module layout {
type EnumFormat: {
tag_bytes: uint8,
inner_bytes: uint8,
has_ptr: bool,
variants: [EnumVariantFormat],
}
type EnumVariantFormat: {
is_unit: bool,
padding_bytes: uint8,
}
}