1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use std::marker::PhantomData;

use riker::model::Model;
use riker::protocol::Message;
use riker::system::NoIo;
pub use riker_dispatcher::ThreadPoolDispatcher;
pub use riker_log::SimpleLogger;
pub use riker_deadletter::DeadLettersActor;
pub use riker_mapvec::MapVec;
pub use riker_timer::BasicTimer;


#[derive(Clone)]
pub struct DefaultModel<Msg: Message> {
    msg: PhantomData<Msg>,
}

impl<Msg: Message> DefaultModel<Msg> {
    pub fn new() -> Self {
        DefaultModel { msg: PhantomData }
    }
}

impl<Msg: Message> Model for DefaultModel<Msg> {
    type Msg = Msg;
    type Dis = ThreadPoolDispatcher;
    type Ded = DeadLettersActor<Self::Msg>;
    type Tmr = BasicTimer<Self::Msg>;
    type Evs = MapVec<Self::Msg>;
    type Tcp = NoIo<Self::Msg>;
    type Udp = NoIo<Self::Msg>;
    type Log = SimpleLogger<Self::Msg>;
}