Skip to main content

Module temporal

Module temporal 

Source
Expand description

Deterministic temporal interval and valid-time foundations. Deterministic temporal interval and valid-time foundations.

This first G5 slice introduces half-open intervals [start, end) over endpoint domains with total ordering. Intervals use deterministic lexicographic (start, end) ordering when stored in ordered collections, which makes later coalescing behavior easy to audit.

Half-open semantics mean:

  • start is included;
  • end is excluded;
  • directly adjacent intervals such as [1, 3) and [3, 5) do not overlap, but they can be coalesced;
  • invalid intervals with start >= end are rejected explicitly.

On top of the interval substrate, this module also provides a first deterministic valid-time relation foundation:

  • ValidTimeSupport<T> stores the canonical interval support for one fact;
  • ValidTimeRelation<F, T> maps exact facts to deterministic valid-time support and materializes exact support back into the published unary, binary, and n-ary relation surface.
  • ValidTimeRelation::snapshot_at and ValidTimeRelation::restrict_to provide the first narrow temporal operations over stored facts.
  • relation-level exact support materialization for valid-time surfaces is also available generically through crate::ExactSupport.

This module remains intentionally narrower than a full temporal algebra. Temporal joins, temporal composition, transaction time, and bitemporal APIs are later work.

Structs§

Interval
Deterministic half-open interval over an ordered endpoint domain.
ValidTimeRelation
Deterministic valid-time support attached to exact facts.
ValidTimeSupport
Deterministic canonical valid-time support for one fact.

Enums§

IntervalError
Validation errors for deterministic half-open intervals.