Tempo.Explanation (Tempo v0.5.0)

Copy Markdown View Source

A structured explanation of a Tempo value.

Produced by Tempo.Explain.explain/1. Consists of a :kind classifier and an ordered list of {tag, text} parts. The tag lets renderers (plain terminal, ANSI colour, HTML, visualizer components) style each part semantically without re-parsing the prose.

Fields

  • :kind — a classifier atom (e.g. :scalar_year, :masked_year, :duration, :interval_set).

  • :parts — a list of {tag :: atom(), text :: String.t()} tuples. Common tags:

    • :headline — one-line description of what this value is.
    • :span — bounded interval in [from, to) form.
    • :qualification — EDTF qualifier description.
    • :extended — IXDTF metadata (zone, calendar, tags).
    • :calendar — non-default calendar.
    • :enumeration — iteration granularity.
    • :hint — pointer to relevant function.
    • :metadata — user metadata on an interval.
    • :member — list-of-members preview for sets.

Summary

Types

t()

@type t() :: %Tempo.Explanation{kind: atom(), parts: [{atom(), String.t()}]}