Skip to main content

icalendar/
lib.rs

1#![cfg_attr(feature = "parser", doc = include_str!("../README.md"))]
2#![allow(deprecated)]
3#![warn(
4    missing_docs,
5    missing_copy_implementations,
6    trivial_casts,
7    trivial_numeric_casts,
8    unsafe_code,
9    unstable_features,
10    unused_import_braces,
11    unused_qualifications,
12    missing_debug_implementations,
13    clippy::indexing_slicing,
14    clippy::dbg_macro,
15    clippy::doc_markdown,
16    clippy::redundant_closure_for_method_calls
17)]
18
19macro_rules! print_crlf {
20    () => (print!("\r\n"));
21    ($fmt:expr) => (print!(concat!($fmt, "\r\n")));
22    ($fmt:expr, $($arg:tt)*) => (print!(concat!($fmt, "\r\n"), $($arg)*));
23}
24
25macro_rules! write_crlf {
26    ($dst:expr) => (
27        write!($dst, "\r\n")
28    );
29    ($dst:expr, $fmt:expr) => (
30        write!($dst, concat!($fmt, "\r\n"))
31    );
32    ($dst:expr, $fmt:expr, $($arg:tt)*) => (
33        write!($dst, concat!($fmt, "\r\n"), $($arg)*)
34    );
35}
36
37#[cfg(all(test, feature = "parser"))]
38#[macro_use]
39mod assert;
40
41//pub mod period;
42mod calendar;
43mod components;
44#[cfg(feature = "parser")]
45pub mod parser;
46mod properties;
47#[cfg(feature = "recurrence")]
48mod recurrence;
49mod value_types;
50
51pub use crate::{
52    calendar::{Calendar, CalendarComponent},
53    components::{
54        Component, Event, EventLike, Todo, Venue,
55        alarm::{Alarm, Related, Trigger},
56        date_time::{CalendarDateTime, DatePerhapsTime},
57    },
58    properties::{
59        Class, EventStatus, Parameter, Property, TodoStatus,
60        attendee::{Attendee, CUType, PartStat, Role},
61    },
62    value_types::ValueType,
63};
64
65#[cfg(feature = "recurrence")]
66pub use recurrence::*;
67
68#[cfg(feature = "chrono-tz")]
69pub use crate::components::date_time::ymd_hm_tzid;
70
71// TODO Calendar TimeZone VTIMEZONE STANDARD DAYLIGHT (see thunderbird exports)