aboutsummaryrefslogtreecommitdiff
path: root/lib/kernel/mass_formulary.mli
blob: caea3ebac0d03e449acc7e85d5b455f0ca50f5db (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
(** Which Mass a day actually says, and how that was decided.

    A day does not always say its own Mass. A weekday with no proper of its own
    resumes the preceding Sunday's; a saint with no proper says a Common. The
    resolution already happens inside a rite's {!Rite.readings} -- this type is
    what makes the answer visible instead of discarding it once the citations
    have been extracted. An ordo prints it as "Mass of the 9th Sunday after
    Pentecost".

    Rite-agnostic by construction: it names a slug and a provenance, and
    carries no rank, season or rubric vocabulary of any rite. *)

type source =
  | Proper  (** the observed celebration's own citations *)
  | Own_slug  (** the lectionary's entry for the day's own slug *)
  | Preceding_sunday  (** a weekday with no proper resumes the preceding Sunday *)
  | Common  (** a saint's assigned Common *)
[@@deriving sexp]

type t = { said : Slug.t; via : source } [@@deriving sexp]

(** The slug whose Mass is said. For {!Proper} and {!Own_slug} this is the day's
    own; for {!Preceding_sunday} it is that Sunday's TEMPORAL slug; for
    {!Common} it is the Common's own id. *)

val source_to_string : source -> string