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);