galchemy/orm/result

Types

pub type Mapper(a) {
  Mapper(
    run: fn(Row, materializer.Materializer) -> Result(
      #(a, materializer.Materializer),
      MappingError,
    ),
  )
}

Constructors

pub type MappingError {
  MissingScalar(name: String)
  MissingEntity(table: metadata.ModelMetadata)
  CodecError(codec.CodecError)
  MaterializationError(materializer.MaterializationError)
}

Constructors

pub type Row {
  Row(
    scalars: List(ScalarField),
    entities: List(materializer.RowData),
  )
}

Constructors

pub type ScalarField {
  ScalarField(name: String, value: expression.SqlValue)
}

Constructors

Values

pub fn entity_value(
  next_metadata: metadata.ModelMetadata,
) -> Mapper(entity.Entity)
pub fn many(
  mapper: Mapper(a),
  rows: List(Row),
  next_materializer: materializer.Materializer,
) -> Result(#(List(a), materializer.Materializer), MappingError)
pub fn map(mapper: Mapper(a), transform: fn(a) -> b) -> Mapper(b)
pub fn one(
  mapper: Mapper(a),
  next_row: Row,
  next_materializer: materializer.Materializer,
) -> Result(#(a, materializer.Materializer), MappingError)
pub fn row(
  scalars: List(ScalarField),
  entities: List(materializer.RowData),
) -> Row
pub fn scalar(
  name: String,
  value: expression.SqlValue,
) -> ScalarField
pub fn scalar_as(
  name: String,
  next_codec: codec.Codec(a),
) -> Mapper(a)
pub fn scalar_value(name: String) -> Mapper(expression.SqlValue)
pub fn tuple2(
  first: Mapper(a),
  second: Mapper(b),
) -> Mapper(#(a, b))
pub fn tuple3(
  first: Mapper(a),
  second: Mapper(b),
  third: Mapper(c),
) -> Mapper(#(a, b, c))
Search Document