rust 1,847,280 · typescript 232,434 · javascript 131,101 · python 19,227 · 6,362 files · digest 755e2ee30522 · built in 2.3 s · crystals off
cre8-util-ical crates cargo crate
RFC 5545 iCalendar parse + serialize, std-only: the minimal VEVENT import/export pair, the zone-aware reader (TZID through a caller resolver + VTIMEZONE fallback, all-day dates, EXDATE / RDATE / RECURRENCE-ID, DAILY-YEARLY RRULE expansion with a hard cap, VFREEBUSY), and the full calendar writer (METHOD, STATUS, SEQUENCE, attendees, VALARM, TEXT escaping, line folding). Optional serde derives.
Neighbourhood
Left: crates that declare this one. Right: crates it declares (dev-dependencies included). Edge width grows with resolved calls.
Files
File call graph
Resolved calls between this crate's files, callers left of callees.
Heaviest functions
By call-graph weight (PageRank; 1.0 is the average function). 240 functions in all.
| function | kind | lines | cyclomatic | callers | callees | weight | crystal |
|---|---|---|---|---|---|---|---|
| parse_ical_dtsrc/datetime.rs:41 | fn | 3 | 1 | 29 | 2 | 11.9 | |
| days_from_civilsrc/datetime.rs:16 | fn | 8 | 4 | 9 | 0 | 7.2 | |
| civil_from_dayssrc/datetime.rs:26 | fn | 12 | 4 | 8 | 0 | 6 | |
| IcalDateTimeValue::parsesrc/datetime.rs:66 | method | 4 | 1 | 1 | 3 | 5.5 | |
| IcalDateTimeValue::to_epoch_mssrc/datetime.rs:71 | method | 4 | 1 | 1 | 1 | 5.5 | |
| fold_linesrc/calendar.rs:358 | fn | 14 | 3 | 7 | 0 | 5.2 | |
| parse_rrulesrc/rrule.rs:147 | fn | 7 | 2 | 17 | 1 | 5 | |
| parse_icalsrc/ical_event.rs:39 | fn | 13 | 5 | 8 | 4 | 4.9 | |
| apply_rrule_partsrc/rrule.rs:241 | fn | 6 | 2 | 1 | 2 | 4.7 | |
| parse_calendarsrc/vcalendar.rs:126 | fn | 83 | 28 | 9 | 8 | 3.8 | |
| normalize_tzidsrc/zone.rs:78 | fn | 8 | 2 | 7 | 0 | 3.8 | |
| normalize_newlinessrc/calendar.rs:306 | fn | 3 | 1 | 2 | 0 | 3.5 | |
| format_ical_dtsrc/datetime.rs:124 | fn | 7 | 1 | 11 | 1 | 3.4 | |
| weekday_codesrc/rrule.rs:112 | fn | 9 | 2 | 6 | 0 | 3.1 | |
| escape_textsrc/calendar.rs:313 | fn | 16 | 9 | 6 | 1 | 2.9 | |
| uid_partsrc/calendar.rs:155 | fn | 3 | 2 | 2 | 0 | 2.8 | |
| offset_mssrc/zone.rs:190 | fn | 4 | 1 | 2 | 0 | 2.7 | |
| rrule_part_appliersrc/rrule.rs:262 | fn | 3 | 1 | 1 | 0 | 2.5 | |
| split_rrule_partsrc/rrule.rs:316 | fn | 6 | 1 | 1 | 0 | 2.5 | |
| uid_forsrc/calendar.rs:149 | fn | 5 | 2 | 7 | 2 | 2.4 | |
| unfold_linessrc/contentline.rs:8 | fn | 11 | 5 | 3 | 0 | 2.4 | |
| serialize_calendarsrc/calendar.rs:182 | fn | 20 | 5 | 16 | 5 | 2.4 | |
| IcalTime::to_utc_mssrc/zone.rs:177 | method | 11 | 4 | 9 | 2 | 2.3 | |
| PartialEvent::finishsrc/ical_event.rs:128 | method | 11 | 1 | 2 | 0 | 2.2 | |
| expand_occurrencessrc/expand.rs:60 | fn | 67 | 15 | 7 | 8 | 2.1 | |
| utcsrc/expand_tests.rs:9 | fn | 3 | 1 | 15 | 1 | 2.1 | |
| normalized_dt_valuesrc/datetime.rs:81 | fn | 4 | 1 | 1 | 0 | 2.1 | |
| parse_ical_datesrc/datetime.rs:86 | fn | 8 | 1 | 1 | 2 | 2.1 | |
| parse_ical_clocksrc/datetime.rs:95 | fn | 11 | 2 | 1 | 3 | 2.1 | |
| normalize_methodsrc/calendar.rs:302 | fn | 3 | 2 | 3 | 0 | 2 | |
| rule_startssrc/expand.rs:212 | fn | 44 | 12 | 4 | 2 | 2 | |
| parse_fixed_i64src/datetime.rs:107 | fn | 3 | 1 | 2 | 0 | 2 | |
| calendarsrc/expand_tests.rs:20 | fn | 3 | 1 | 1 | 1 | 1.9 | |
| push_linesrc/calendar.rs:297 | fn | 4 | 1 | 5 | 1 | 1.9 | |
| parse_property_linesrc/ical_event.rs:71 | fn | 5 | 1 | 1 | 0 | 1.8 | |
| ical_property_appliersrc/ical_event.rs:96 | fn | 3 | 1 | 1 | 0 | 1.8 | |
| VCalendar::resolversrc/vcalendar.rs:100 | method | 3 | 1 | 5 | 0 | 1.8 | |
| CalendarEvent::newsrc/calendar.rs:140 | method | 3 | 1 | 9 | 0 | 1.8 | |
| IcalTime::is_datesrc/zone.rs:138 | method | 3 | 1 | 5 | 0 | 1.8 | |
| expand_allsrc/expand_tests.rs:24 | fn | 3 | 1 | 12 | 2 | 1.7 |
Outside the workspace
serde serde_json