lutra-bin 0.5.1

Binary format library for Lutra: IR/RR encoding, decoding, and value representation
Documentation

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,
  }
}