rsynko_session/sorts.rs
1/// The sorts of running work — the type families the attendance classes share.
2///
3/// A pure carrier trait with no operations. Sharing it links the sorts across every class, so a
4/// class never re-declares a sort and a composition never restates one as an equality bound.
5pub trait SessionSorts {
6 /// Names the request one run works on behalf of.
7 type Id;
8 /// Represents one thing happening where this program cannot reach into it.
9 type Run;
10 /// Represents one thing a run states while it is happening.
11 type Report;
12 /// Represents how a run ended.
13 type Ending;
14 /// Denotes a run refusing to begin, to be read, or to end.
15 type Refusal;
16}