Process lifecycle without flattening interactive input and termination.
Summary
Callbacks
@callback attach(ExecutionPlane.ExecutionRef.t(), pid(), keyword()) :: :ok | {:error, term()}
@callback cancel(ExecutionPlane.ExecutionRef.t(), keyword()) :: :ok | {:error, term()}
@callback end_input(ExecutionPlane.ExecutionRef.t(), keyword()) :: :ok | {:error, term()}
@callback send_input(ExecutionPlane.ExecutionRef.t(), iodata(), keyword()) :: :ok | {:error, term()}
@callback start(ExecutionPlane.Family.ProcessRequest.t(), keyword()) :: {:ok, ExecutionPlane.ActiveExecution.t()} | {:error, term()}
@callback status(ExecutionPlane.ExecutionRef.t(), keyword()) :: {:ok, ExecutionPlane.Runtime.Status.t()} | {:error, term()}
@callback terminate(ExecutionPlane.ExecutionRef.t(), keyword()) :: :ok | {:error, term()}