ICSWatcher

Struct ICSWatcher 

Source
pub struct ICSWatcher<'a> {
    pub callbacks: Vec<CalendarCallback>,
    /* private fields */
}
Expand description

Instantiate an ICSWatcher using ICSWatcher::new to watch for changes of an ics link.

Using this, you can also create and load backups. If you want to handle when the watcher updates, you can manually call the ICSWatcher::update method.

§Examples

let mut ics_watcher = ICSWatcher::new(
    "some url",
    vec![
        Box::new(|a, b, e| Box::pin(async move { log_events(a, b, e).await })),
    ],
);
// Try to load backup
let _ = ics_watcher.load_backup("Your Calendar");
// Run ics watcher infinitely and save backups as "Your Calendar"
ics_watcher
    .run(Option::from("Your Calendar"))
    .await
    .expect("ICS Watcher crashed");

Fields§

§callbacks: Vec<CalendarCallback>

Implementations§

Source§

impl<'a> ICSWatcher<'a>

Source

pub fn new(ics_link: &'a str, callbacks: Vec<CalendarCallback>) -> Self

Source

pub fn restore_state(&mut self, state: HashMap<String, IcalEvent>)

Source

pub fn get_state(&self) -> &HashMap<String, IcalEvent>

Source

pub fn get_calendar_name(&self) -> Option<String>

Source

pub fn create_backup(&self, name: &str)

Source

pub fn load_backup(&mut self, name: &str) -> Result<(), Box<dyn Error>>

Source

pub async fn update(&mut self) -> Result<(), Box<dyn Error>>

Source

pub async fn run(&mut self, backup: Option<&str>) -> Result<(), Box<dyn Error>>

Auto Trait Implementations§

§

impl<'a> Freeze for ICSWatcher<'a>

§

impl<'a> !RefUnwindSafe for ICSWatcher<'a>

§

impl<'a> !Send for ICSWatcher<'a>

§

impl<'a> !Sync for ICSWatcher<'a>

§

impl<'a> Unpin for ICSWatcher<'a>

§

impl<'a> !UnwindSafe for ICSWatcher<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,