Skip to main content

## FavoriteSink

# Trait FavoriteSink

Source

    pub trait FavoriteSink: Send + Sync {
        // Required method
        fn push_favorite<'life0, 'life1, 'async_trait>(
            &'life0 self,
            item_id: &'life1 str,
            is_favorite: bool,
        ) -> Pin<Box<dyn Future<Output = Result<(), RepoError>> + Send + 'async_trait>>
           where Self: 'async_trait,
                 'life0: 'async_trait,
                 'life1: 'async_trait;
    }

Expand description

The subset of the repository the drain needs.

Narrow on purpose: a test double for `MediaRepository` would be forty unimplemented methods, which is how a drain ends up untested.

## Required Methods§

Source

#### fn push_favorite<'life0, 'life1, 'async_trait>( &'life0 self, item_id: &'life1 str, is_favorite: bool, ) -> Pin<Box<dyn Future<Output = Result<(), RepoError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

## Implementors§

Source §

### impl<T: MediaRepository + ?Sized> FavoriteSink for T