sails_rs/gstd/
services.rs

1use crate::gstd::EventEmitter;
2
3pub trait Service {
4    type Exposure: Exposure;
5
6    fn expose(self, route: &'static [u8]) -> Self::Exposure;
7}
8
9pub trait Exposure {
10    fn route(&self) -> &'static [u8];
11    fn check_asyncness(input: &[u8]) -> Option<bool>;
12}
13
14pub trait ExposureWithEvents: Exposure {
15    type Events;
16
17    fn emitter(&self) -> EventEmitter<Self::Events> {
18        let route = self.route();
19        EventEmitter::new(route)
20    }
21}