pub trait DataProvider {
// Required methods
fn load_all_entries<'life0, 'async_trait>(
&'life0 self
) -> Pin<Box<dyn Future<Output = Result<Vec<Entry>>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn add_entry<'life0, 'async_trait>(
&'life0 self,
entry: EntryDraft
) -> Pin<Box<dyn Future<Output = Result<Entry, ModifyEntryError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn remove_entry<'life0, 'async_trait>(
&'life0 self,
entry_id: u32
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn update_entry<'life0, 'async_trait>(
&'life0 self,
entry: Entry
) -> Pin<Box<dyn Future<Output = Result<Entry, ModifyEntryError>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}