8 Commits

Author SHA1 Message Date
Adrian Malacoda
37a9645f5b Simplify module trait by combining produce/consume event methods into a single run method that runs in the module's own thread and can produce and/or consume events. Introduce an Envelope struct that encapsulates event + to/from so we can (eventually) tag every event and also limit where events are sent (e.g. you can have a specific module configured to talk or listen only to a certain other module). 2017-02-25 20:17:46 -06:00
Adrian Malacoda
96bc25234e more event types 2017-02-19 18:21:11 -06:00
Adrian Malacoda
0f945ec604 create a dedicated Message struct and implement reply(&str) on there, since it seems to be a commonly used thing. Begin implementing helpers for command parsing. 2017-02-19 05:37:56 -06:00
Adrian Malacoda
84d2921f8f send/receive Arc<Event> instead of Event so we don't have to clone objects all over the place. This might also enable us to be a bit more flexible with what we send with Events, and might simplify things elsewhere. 2017-02-19 02:55:30 -06:00
Adrian Malacoda
66180578d6 alternate implementation using Box<MessageSender> and clone 2017-02-15 23:41:29 -06:00
Adrian Malacoda
5b9f1610dd attempt to flesh out send support for channel/message. Currently does not build 2017-02-15 22:41:52 -06:00
Adrian Malacoda
d414e65fd9 begin fleshing out discord module. Implement sender/channel as struct for now, there might be a performance hit from copying so much data around but we can look at optimization later 2017-02-13 22:13:33 -06:00
Adrian Malacoda
26a6b77632 Flesh out plugins event handling, add example stdin plugin (event producer) and echo plugin (event consumer). Next step: fleshing out user/channel structs 2017-02-13 00:22:06 -06:00