Firebreak.Analysis (Firebreak v0.1.0)

Copy Markdown View Source

The aggregate result of analysing a project: the parsed modules, the resolved coupling edges, the supervision forest (subtree membership), and the findings produced by the checks.

Summary

Functions

Fetch a ModuleInfo by name, or nil.

All modules in supervisor sup's subtree (including itself).

Highest finding severity present, or nil if clean.

Types

t()

@type t() :: %Firebreak.Analysis{
  child_map: %{optional(module()) => [module()]},
  edges: [Firebreak.Edge.t()],
  files_scanned: non_neg_integer(),
  findings: [Firebreak.Finding.t()],
  modules: %{optional(module()) => Firebreak.ModuleInfo.t()},
  name_index: %{optional(term()) => module()},
  roots: [module()],
  simulations: [Firebreak.FailureSim.simulation()],
  snapshot: Firebreak.Snapshot.t() | nil,
  strategies: %{optional(module()) => atom()},
  subtree: %{optional(module()) => MapSet.t()},
  supervisors: [module()]
}

Functions

module(analysis, name)

Fetch a ModuleInfo by name, or nil.

subtree(analysis, sup)

All modules in supervisor sup's subtree (including itself).

worst_severity(analysis)

Highest finding severity present, or nil if clean.