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
27
28
29
30
31
32
33
34
35
36
37
38
//! # Validity proof
//!
//! [`IcalValid`], the marker a check mints and nothing else can.
//!
//! Validity is a runtime predicate in this crate, never a second, stricter
//! type: a conformant calendar may still carry extensions, so a no-extension
//! type would name a useless category. What a type *can* carry is the proof
//! that a check ran and passed, which is what this is. It is a plain wrapper
//! with a private field, so the only way to hold one is to have been handed it
//! by a validator.
//!
//! Two validators mint it today, and they live at opposite ends of the crate:
//! [`Ical::validate`](crate::ical::Ical::validate) over a whole calendar, and
//! [`IcalRecurRule::validate`](crate::recur::IcalRecurRule::validate) over one
//! recurrence rule. The marker is here, in the dependency-free core, so neither
//! has to depend on the other's feature to speak the same language.
use ops;
/// A value that passed its validator. Only a validator can mint one, so holding
/// it is proof of conformance.
T);