Crate chronologic

Source
Expand description

§Time constraint reasoning

This crate is dedicated to reasoning about time. It deals with time constraints, propagate them and maintain an agenda of all the possible dates consistent with the user constraints.

§Time structures

Several time structures (interval, sets) are provided to make easier time manipulation.

This time data defines several operators for union, intersection, translation in two ways:

  • by using standard operators (& for intersection, | for unsion, +/- for translation)
  • by using iterator traits (see module iter) which allows time manipulation with saving memory allocation (no intermediate structures needed)

§Time constraint management

The module graph deals with time constraints graph and mainly provides two structures:

  • graph::TimeGraph: the time constraints graph, a time constraint is defined as an interval of duration between two instants, a graph could be considered as a collection of time constraints
  • graph::TimeScheduler: the scheduler maintains a set of slots (one for each instant) according to its time graph

Any modification of constraints are automatically propagated (see graph::TimeGraph for more informations about the propagation algorithm).

Modules§

graph
Time constraints management
iter
Iterators over time windows for efficient algorithms

Structs§

TimeInterval
A generic interval defined by its two time bounds
TimeSet
A union of time intervals
TimeValue
A single time value (duration)
Timestamp
A UTC timestamp (date + time)

Traits§

IntoTimeValue
TimeBounds
The envelope (the bounds) of a time window
TimeContaining
A trait for time containing
TimeConvex
A marker of convex (interval) time set
TimeOverlapping
A trait for time overlapping
TimePoint
A unique point of a time window
TimePointFormat
TimeSetFormat
TimeTruncation
TimeWindow
An arbitrary set of timepoints
Timestamped
A trait for marking timestamped data

Type Aliases§

TimeSlot
An alias for TimeInterval<Timestamp>
TimeSlots
A union of TimeSlot (aliased to TimeSet<Timestamp>)
TimeSpan
An alias for TimeInterval<TimeValue>
TimeSpans
A union of TimeSpan (aliased to TimeSet<TimeValue>)