diff --git a/Cargo.lock b/Cargo.lock index faf1b2e..163449d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -689,9 +689,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.7.6" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" +checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" [[package]] name = "colorchoice" @@ -1771,7 +1771,7 @@ dependencies = [ [[package]] name = "ical" version = "0.11.0" -source = "git+https://github.com/lennart-k/ical-rs?branch=dev#626982a02647c3bee5c7d0828facd1b77df5722f" +source = "git+https://github.com/lennart-k/ical-rs?branch=dev#ece5b95ddc20f89d14e162aba3a49038f9989701" dependencies = [ "chrono", "chrono-tz", @@ -2965,7 +2965,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha 0.9.0", - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -2985,7 +2985,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.3", + "rand_core 0.9.5", ] [[package]] @@ -2999,9 +2999,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.9.3" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" dependencies = [ "getrandom 0.3.4", ] @@ -4353,30 +4353,30 @@ dependencies = [ [[package]] name = "time" -version = "0.3.44" +version = "0.3.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d" +checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd" dependencies = [ "deranged", "itoa", "num-conv", "powerfmt", - "serde", + "serde_core", "time-core", "time-macros", ] [[package]] name = "time-core" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b" +checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca" [[package]] name = "time-macros" -version = "0.2.24" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3" +checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd" dependencies = [ "num-conv", "time-core", @@ -4611,9 +4611,9 @@ dependencies = [ [[package]] name = "tower" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" dependencies = [ "futures-core", "futures-util", @@ -5559,6 +5559,6 @@ dependencies = [ [[package]] name = "zmij" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac93432f5b761b22864c774aac244fa5c0fd877678a4c37ebf6cf42208f9c9ec" +checksum = "bd8f3f50b848df28f887acb68e41201b5aea6bc8a8dacc00fb40635ff9a72fea" diff --git a/crates/caldav/src/calendar/methods/import.rs b/crates/caldav/src/calendar/methods/import.rs index 2a96efd..94588c3 100644 --- a/crates/caldav/src/calendar/methods/import.rs +++ b/crates/caldav/src/calendar/methods/import.rs @@ -11,7 +11,6 @@ use rustical_ical::CalendarObjectType; use rustical_store::{ Calendar, CalendarMetadata, CalendarStore, SubscriptionStore, auth::Principal, }; -use std::io::BufReader; use tracing::instrument; #[instrument(skip(resource_service))] @@ -26,7 +25,7 @@ pub async fn route_import( return Err(Error::Unauthorized); } - let parser = ical::IcalParser::new(BufReader::new(body.as_bytes())); + let parser = ical::IcalParser::from_slice(body.as_bytes()); let mut cal = parser .expect_one() .map_err(rustical_ical::Error::ParserError)? diff --git a/crates/caldav/src/calendar/methods/mkcalendar.rs b/crates/caldav/src/calendar/methods/mkcalendar.rs index f85ca76..d065231 100644 --- a/crates/caldav/src/calendar/methods/mkcalendar.rs +++ b/crates/caldav/src/calendar/methods/mkcalendar.rs @@ -87,7 +87,7 @@ pub async fn route_mkcalendar( Some(tzid) } else if let Some(tz) = request.calendar_timezone { // TODO: Proper error (calendar-timezone precondition) - let calendar = IcalParser::new(tz.as_bytes()) + let calendar = IcalParser::from_slice(tz.as_bytes()) .next() .ok_or_else(|| rustical_dav::Error::BadRequest("No timezone data provided".to_owned()))? .map_err(|_| rustical_dav::Error::BadRequest("Error parsing timezone".to_owned()))?; diff --git a/crates/caldav/src/calendar/resource.rs b/crates/caldav/src/calendar/resource.rs index f80a4d4..5c8c54a 100644 --- a/crates/caldav/src/calendar/resource.rs +++ b/crates/caldav/src/calendar/resource.rs @@ -202,7 +202,7 @@ impl Resource for CalendarResource { CalendarProp::CalendarTimezone(timezone) => { if let Some(tz) = timezone { // TODO: Proper error (calendar-timezone precondition) - let calendar = IcalParser::new(tz.as_bytes()) + let calendar = IcalParser::from_slice(tz.as_bytes()) .next() .ok_or_else(|| { rustical_dav::Error::BadRequest( diff --git a/crates/carddav/src/addressbook/methods/import.rs b/crates/carddav/src/addressbook/methods/import.rs index da3bcb0..cb7bff2 100644 --- a/crates/carddav/src/addressbook/methods/import.rs +++ b/crates/carddav/src/addressbook/methods/import.rs @@ -10,7 +10,6 @@ use ical::{ property::ContentLine, }; use rustical_store::{Addressbook, AddressbookStore, SubscriptionStore, auth::Principal}; -use std::io::BufReader; use tracing::instrument; #[instrument(skip(resource_service))] @@ -24,7 +23,7 @@ pub async fn route_import( return Err(Error::Unauthorized); } - let parser = vcard::VcardParser::new(BufReader::new(body.as_bytes())); + let parser = vcard::VcardParser::from_slice(body.as_bytes()); let mut objects = vec![]; for res in parser { diff --git a/crates/ical/src/address_object.rs b/crates/ical/src/address_object.rs index 1cac936..ad1e943 100644 --- a/crates/ical/src/address_object.rs +++ b/crates/ical/src/address_object.rs @@ -14,8 +14,8 @@ use ical::parser::{ use ical::property::ContentLine; use ical::types::{CalDate, PartialDate}; use sha2::{Digest, Sha256}; +use std::collections::HashMap; use std::str::FromStr; -use std::{collections::HashMap, io::BufReader}; #[derive(Debug, Clone)] pub struct AddressObject { @@ -32,7 +32,7 @@ impl From for AddressObject { impl AddressObject { pub fn from_vcf(vcf: String) -> Result { - let parser = vcard::VcardParser::new(BufReader::new(vcf.as_bytes())); + let parser = vcard::VcardParser::from_slice(vcf.as_bytes()); let vcard = parser.expect_one()?; Ok(Self { vcf, vcard }) } diff --git a/crates/ical/src/calendar_object.rs b/crates/ical/src/calendar_object.rs index dcecf56..e0114f7 100644 --- a/crates/ical/src/calendar_object.rs +++ b/crates/ical/src/calendar_object.rs @@ -1,9 +1,9 @@ use crate::Error; use derive_more::Display; +use ical::IcalObjectParser; use ical::component::CalendarInnerData; use ical::component::IcalCalendarObject; use ical::generator::Emitter; -use ical::parser::ComponentParser; use serde::Deserialize; use serde::Serialize; use sha2::{Digest, Sha256}; @@ -69,7 +69,7 @@ pub struct CalendarObject { impl CalendarObject { pub fn from_ics(ics: String) -> Result { - let parser: ComponentParser<_, IcalCalendarObject> = ComponentParser::new(ics.as_bytes()); + let parser = IcalObjectParser::from_slice(ics.as_bytes()); let inner = parser.expect_one()?; Ok(Self { inner, ics })