SquidMesh.RunStore.Serialization (squid_mesh v0.1.0-alpha.6)

Copy Markdown View Source

Read-side serialization and hydration helpers for workflow runs.

SquidMesh.RunStore remains the public boundary. This module keeps the translation between persistence records and public structs in one place so command code can stay focused on lifecycle transitions.

Summary

Types

list_filter()

@type list_filter() ::
  {:workflow, module()}
  | {:status, SquidMesh.Run.status()}
  | {:limit, pos_integer()}

list_filters()

@type list_filters() :: [list_filter()]

Functions

deserialize_map(map)

@spec deserialize_map(map() | nil) :: map() | nil

deserialize_run_error(definition, error)

@spec deserialize_run_error(SquidMesh.Workflow.Definition.t() | nil, map() | nil) ::
  map() | nil

deserialize_status(binary)

@spec deserialize_status(String.t()) :: SquidMesh.Run.status()

deserialize_step(definition, step_name)

@spec deserialize_step(SquidMesh.Workflow.Definition.t() | nil, String.t() | nil) ::
  atom() | String.t() | nil

deserialize_workflow(workflow_name)

@spec deserialize_workflow(String.t()) ::
  {module() | String.t(), SquidMesh.Workflow.Definition.t() | nil}

maybe_preload_history(query, bool)

@spec maybe_preload_history(Ecto.Queryable.t(), boolean()) :: Ecto.Query.t()

serialize_filters(filters)

@spec serialize_filters(list_filters()) :: keyword()

serialize_status(status)

@spec serialize_status(SquidMesh.Run.status()) :: String.t()

to_public_run(run)

@spec to_public_run(SquidMesh.Persistence.Run.t()) :: SquidMesh.Run.t()