Macaw.Surface.Validated (macaw v0.1.2)

Copy Markdown View Source

A surface that passed the static pass (spec/06 §3.4), and what rendering needs of it: each cell's component module, validated settings and declarations, and each slot's source, description, fields and request params; order is the cells in reading order.

Rendering takes only a validated surface, so nothing renders that hasn't passed.

Summary

Types

cell()

@type cell() :: %{
  module: module(),
  settings: map(),
  declarations: Macaw.Component.Declarations.t(),
  slots: %{required(String.t()) => slot()}
}

slot()

@type slot() :: %{
  source: String.t(),
  description: Macaw.Data.Source.Description.t(),
  fields: map(),
  params: map()
}

t()

@type t() :: %Macaw.Surface.Validated{
  cells: %{required(String.t()) => cell()},
  order: [String.t()],
  surface: Macaw.Surface.t()
}