Behaviour for eval result reporters.
Summary
Types
@type results() :: %{ summary: %{ total: non_neg_integer(), passed: non_neg_integer(), failed: non_neg_integer(), pass_rate: float(), duration_ms: non_neg_integer() }, metrics: %{ required(atom()) => %{passed: non_neg_integer(), total: non_neg_integer()} }, cases: [map()] }