redux-rs 0.3.3

A Rust implementation of Redux.
Documentation
use crate::store::worker::Work;
use crate::Selector;
use std::marker::PhantomData;

pub struct Select<State, S>
where
    S: Selector<State>,
{
    selector: S,
    _types: PhantomData<State>,
}

impl<State, S> Select<State, S>
where
    S: Selector<State>,
{
    pub fn new(selector: S) -> Self {
        Select {
            selector,
            _types: Default::default(),
        }
    }

    pub fn into_selector(self) -> S {
        self.selector
    }
}

impl<State, S> Work for Select<State, S>
where
    State: Send,
    S: Selector<State> + Send,
    S::Result: Send,
{
    type Result = S::Result;
}