Skip to main content

ical/prop/
source.rs

1//! # SOURCE
2//!
3//! The `SOURCE` property: where the calendar itself can be refetched (RFC 7986
4//! 5.8).
5
6use crate::{
7    prop::{IcalPropKind, cardinality::IcalPropCardinality, spec::IcalPropSpec},
8    value::IcalValueKind,
9    version::IcalVersion,
10};
11
12/// The `SOURCE` property marker.
13pub struct SOURCE;
14
15impl IcalPropSpec for SOURCE {
16    const KIND: IcalPropKind = IcalPropKind::Source;
17
18    fn allowed_versions() -> &'static [IcalVersion] {
19        &[IcalVersion::V2_0]
20    }
21
22    fn cardinality(_version: IcalVersion) -> IcalPropCardinality {
23        IcalPropCardinality::AtMostOne
24    }
25
26    fn allowed_values(_version: IcalVersion) -> &'static [IcalValueKind] {
27        &[IcalValueKind::Uri]
28    }
29}