ics_core/profile/mod.rs
1//! Per-vendor profile bundles per ADR-001.
2//!
3//! Each vendor module owns its `PREFIXES` const, its `EventExtensions`
4//! and (in later steps) `CalendarExtensions` types, plus `owns_property`
5//! and parse/format helpers. Properties that match a vendor's prefix but
6//! aren't yet typed land in the bundle's `unrecognized` slot — promoting
7//! them to typed fields later is intra-bundle and never crosses through
8//! `VEvent.unknown`.
9
10pub mod google;
11pub mod icloud;
12pub mod microsoft;
13
14/// Shared prefix-match helper. A property name is owned by a profile if
15/// it starts with any of the profile's registered prefixes.
16pub(crate) fn matches_prefixes(name: &str, prefixes: &[&str]) -> bool {
17 prefixes.iter().any(|p| name.starts_with(p))
18}