mm1_core/context/
bind.rs

1use mm1_common::errors::error_of::ErrorOf;
2use mm1_common::impl_error_kind;
3use mm1_proto::message;
4
5#[derive(Debug, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
6#[message]
7pub enum BindErrorKind {
8    Closed,
9    Conflict,
10}
11
12#[derive(Debug, Clone)]
13pub struct BindArgs<Addr> {
14    pub bind_to:    Addr,
15    pub inbox_size: usize,
16}
17
18pub trait Bind<Addr> {
19    fn bind(
20        &mut self,
21        args: BindArgs<Addr>,
22    ) -> impl Future<Output = Result<(), ErrorOf<BindErrorKind>>> + Send;
23}
24
25impl_error_kind!(BindErrorKind);