Tempo.Schedule.Slot (Tempo v0.20.0)

Copy Markdown View Source

A solved task in a Tempo.Schedule — when the task is scheduled and how much room it has to move.

start/finish are the early schedule (the earliest the task can begin and end); latest_start/latest_finish are the late schedule (the latest it can begin and end without making the plan infeasible). A task is on the critical path when its early and late starts coincide — it has zero slack, so any slip delays the whole project (a task pinned by an anchor counts: it cannot move at all).

The late schedule and critical? are determined only when something bounds how late the task can run — a deadline downstream, or an anchor on the task itself. When nothing does, latest_start/latest_finish and critical? are nil: the early start is known, but the task's latest position is open.

Summary

Types

t()

@type t() :: %Tempo.Schedule.Slot{
  critical?: boolean() | nil,
  finish: Tempo.t() | nil,
  id: term(),
  latest_finish: Tempo.t() | nil,
  latest_start: Tempo.t() | nil,
  start: Tempo.t() | nil
}