MingaEditor.RenderModel.Window.ResidentBuild (Minga v0.1.0)

Copy Markdown View Source

Renderer-owned delta-driven resident composition state.

Summary

Types

inputs()

@type inputs() :: %{
  line_texts: [String.t()],
  line_count: non_neg_integer(),
  compose_fp: integer(),
  highlight_fp: integer() | nil,
  reset?: boolean(),
  hydration_reason: atom() | nil,
  keyframe?: boolean(),
  retained_rows: retained_rows(),
  edit_deltas: [Minga.Buffer.EditDelta.t()],
  build_all: (-> [payload()]),
  build_dirty: (MapSet.t(non_neg_integer()) ->
                  %{required(non_neg_integer()) => payload()})
}

payload()

@type payload() :: %{
  :row => Minga.RenderModel.Window.Row.t(),
  optional(atom()) => term()
}

retained_rows()

@type retained_rows() :: %{
  optional(Minga.RenderModel.Window.Row.row_id()) =>
    {non_neg_integer(), Minga.RenderModel.Window.Row.t()}
}

t()

@type t() :: %MingaEditor.RenderModel.Window.ResidentBuild{
  compose_fp: integer() | nil,
  highlight_fp: integer() | nil,
  line_count: non_neg_integer(),
  store: MingaEditor.RenderModel.Window.ResidentStore.t()
}

Functions

run(prev, inputs)

@spec run(t() | nil, inputs()) :: {t(), map()}