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}