@@ -63,28 +63,28 @@ use core::cell::RefCell;
63
63
/// # Ok::<(), ()>(())
64
64
/// ```
65
65
pub struct SharableStack < T > {
66
- stack : RefCell < T > ,
66
+ stack : RefCell < T > ,
67
67
}
68
68
69
69
impl < T > SharableStack < T > {
70
- /// Create a new SharedStack that contains and uses some other stack implementation.
71
- pub fn new ( stack : T ) -> Self {
72
- SharableStack {
73
- stack : RefCell :: new ( stack) ,
74
- }
75
- }
70
+ /// Create a new SharedStack that contains and uses some other stack implementation.
71
+ pub fn new ( stack : T ) -> Self {
72
+ SharableStack {
73
+ stack : RefCell :: new ( stack) ,
74
+ }
75
+ }
76
76
77
- /// Returns a shared reference to the driver that can be used as a first-class implementation.
78
- pub fn acquire ( & self ) -> SharedStack < T > {
79
- SharedStack { stack : & self . stack }
80
- }
77
+ /// Returns a shared reference to the driver that can be used as a first-class implementation.
78
+ pub fn acquire ( & self ) -> SharedStack < T > {
79
+ SharedStack { stack : & self . stack }
80
+ }
81
81
}
82
82
83
83
/// Single-thread shared reference to an internal network stack implementation.
84
84
///
85
85
/// This can only be created by calling [`SharableStack::acquire()`]
86
86
pub struct SharedStack < ' a , T > {
87
- stack : & ' a RefCell < T > ,
87
+ stack : & ' a RefCell < T > ,
88
88
}
89
89
90
90
macro_rules! forward {
@@ -97,46 +97,46 @@ macro_rules! forward {
97
97
98
98
impl < ' a , T > UdpClientStack for SharedStack < ' a , T >
99
99
where
100
- T : UdpClientStack ,
100
+ T : UdpClientStack ,
101
101
{
102
- type Error = T :: Error ;
103
- type UdpSocket = T :: UdpSocket ;
102
+ type Error = T :: Error ;
103
+ type UdpSocket = T :: UdpSocket ;
104
104
105
- forward ! { socket( ) -> Result <Self :: UdpSocket , Self :: Error >}
106
- forward ! { connect( socket: & mut Self :: UdpSocket , address: SocketAddr ) -> Result <( ) , Self :: Error >}
107
- forward ! { send( socket: & mut Self :: UdpSocket , data: & [ u8 ] ) -> Result <( ) , nb:: Error <<T as UdpClientStack >:: Error >>}
108
- forward ! { receive( socket: & mut Self :: UdpSocket , data: & mut [ u8 ] ) -> Result <( usize , SocketAddr ) , nb:: Error <<T as UdpClientStack >:: Error >>}
109
- forward ! { close( socket: Self :: UdpSocket ) -> Result <( ) , Self :: Error >}
105
+ forward ! { socket( ) -> Result <Self :: UdpSocket , Self :: Error >}
106
+ forward ! { connect( socket: & mut Self :: UdpSocket , address: SocketAddr ) -> Result <( ) , Self :: Error >}
107
+ forward ! { send( socket: & mut Self :: UdpSocket , data: & [ u8 ] ) -> Result <( ) , nb:: Error <<T as UdpClientStack >:: Error >>}
108
+ forward ! { receive( socket: & mut Self :: UdpSocket , data: & mut [ u8 ] ) -> Result <( usize , SocketAddr ) , nb:: Error <<T as UdpClientStack >:: Error >>}
109
+ forward ! { close( socket: Self :: UdpSocket ) -> Result <( ) , Self :: Error >}
110
110
}
111
111
112
112
impl < ' a , T > UdpFullStack for SharedStack < ' a , T >
113
113
where
114
- T : UdpFullStack ,
114
+ T : UdpFullStack ,
115
115
{
116
- forward ! { bind( socket: & mut Self :: UdpSocket , local_port: u16 ) -> Result <( ) , Self :: Error >}
117
- forward ! { send_to( socket: & mut Self :: UdpSocket , remote: SocketAddr , buffer: & [ u8 ] ) -> Result <( ) , nb:: Error <<T as UdpClientStack >:: Error >>}
116
+ forward ! { bind( socket: & mut Self :: UdpSocket , local_port: u16 ) -> Result <( ) , Self :: Error >}
117
+ forward ! { send_to( socket: & mut Self :: UdpSocket , remote: SocketAddr , buffer: & [ u8 ] ) -> Result <( ) , nb:: Error <<T as UdpClientStack >:: Error >>}
118
118
}
119
119
120
120
impl < ' a , T > TcpClientStack for SharedStack < ' a , T >
121
121
where
122
- T : TcpClientStack ,
122
+ T : TcpClientStack ,
123
123
{
124
- type TcpSocket = T :: TcpSocket ;
125
- type Error = T :: Error ;
124
+ type TcpSocket = T :: TcpSocket ;
125
+ type Error = T :: Error ;
126
126
127
- forward ! { socket( ) -> Result <Self :: TcpSocket , Self :: Error >}
128
- forward ! { connect( socket: & mut Self :: TcpSocket , address: SocketAddr ) -> Result <( ) , nb:: Error <<T as TcpClientStack >:: Error >>}
129
- forward ! { send( socket: & mut Self :: TcpSocket , data: & [ u8 ] ) -> Result <usize , nb:: Error <<T as TcpClientStack >:: Error >>}
130
- forward ! { receive( socket: & mut Self :: TcpSocket , data: & mut [ u8 ] ) -> Result <usize , nb:: Error <<T as TcpClientStack >:: Error >>}
131
- forward ! { is_connected( socket: & Self :: TcpSocket ) -> Result <bool , Self :: Error >}
132
- forward ! { close( socket: Self :: TcpSocket ) -> Result <( ) , Self :: Error >}
127
+ forward ! { socket( ) -> Result <Self :: TcpSocket , Self :: Error >}
128
+ forward ! { connect( socket: & mut Self :: TcpSocket , address: SocketAddr ) -> Result <( ) , nb:: Error <<T as TcpClientStack >:: Error >>}
129
+ forward ! { send( socket: & mut Self :: TcpSocket , data: & [ u8 ] ) -> Result <usize , nb:: Error <<T as TcpClientStack >:: Error >>}
130
+ forward ! { receive( socket: & mut Self :: TcpSocket , data: & mut [ u8 ] ) -> Result <usize , nb:: Error <<T as TcpClientStack >:: Error >>}
131
+ forward ! { is_connected( socket: & Self :: TcpSocket ) -> Result <bool , Self :: Error >}
132
+ forward ! { close( socket: Self :: TcpSocket ) -> Result <( ) , Self :: Error >}
133
133
}
134
134
135
135
impl < ' a , T > TcpFullStack for SharedStack < ' a , T >
136
136
where
137
- T : TcpFullStack ,
137
+ T : TcpFullStack ,
138
138
{
139
- forward ! { bind( socket: & mut Self :: TcpSocket , port: u16 ) -> Result <( ) , <T as TcpClientStack >:: Error >}
140
- forward ! { listen( socket: & mut Self :: TcpSocket ) -> Result <( ) , <T as TcpClientStack >:: Error >}
141
- forward ! { accept( socket: & mut Self :: TcpSocket ) -> Result <( <T as TcpClientStack >:: TcpSocket , SocketAddr ) , nb:: Error <<T as TcpClientStack >:: Error >>}
139
+ forward ! { bind( socket: & mut Self :: TcpSocket , port: u16 ) -> Result <( ) , <T as TcpClientStack >:: Error >}
140
+ forward ! { listen( socket: & mut Self :: TcpSocket ) -> Result <( ) , <T as TcpClientStack >:: Error >}
141
+ forward ! { accept( socket: & mut Self :: TcpSocket ) -> Result <( <T as TcpClientStack >:: TcpSocket , SocketAddr ) , nb:: Error <<T as TcpClientStack >:: Error >>}
142
142
}
0 commit comments