Skip to content

Commit f452145

Browse files
authored
Adding as_any function to Conn trait. (#465)
1 parent 4f6fa13 commit f452145

File tree

17 files changed

+65
-11
lines changed

17 files changed

+65
-11
lines changed

dtls/src/conn/mod.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,10 @@ impl Conn for DTLSConn {
140140
async fn close(&self) -> UtilResult<()> {
141141
self.close().await.map_err(util::Error::from_std)
142142
}
143+
144+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
145+
self
146+
}
143147
}
144148

145149
impl DTLSConn {

ice/src/agent/agent_test.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,6 +614,10 @@ impl Conn for MockPacketConn {
614614
async fn close(&self) -> std::result::Result<(), util::Error> {
615615
Ok(())
616616
}
617+
618+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
619+
self
620+
}
617621
}
618622

619623
fn build_msg(c: MessageClass, username: String, key: String) -> Result<Message> {

ice/src/agent/agent_transport.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,4 +244,8 @@ impl Conn for AgentConn {
244244
async fn close(&self) -> std::result::Result<(), util::Error> {
245245
Ok(())
246246
}
247+
248+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
249+
self
250+
}
247251
}

ice/src/agent/agent_vnet_test.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ impl Conn for MockConn {
4141
async fn close(&self) -> Result<(), util::Error> {
4242
Ok(())
4343
}
44+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
45+
self
46+
}
4447
}
4548

4649
pub(crate) struct VNet {

ice/src/udp_mux/udp_mux_conn.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,10 @@ impl Conn for UDPMuxConn {
304304

305305
Ok(())
306306
}
307+
308+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
309+
self
310+
}
307311
}
308312

309313
#[inline(always)]

sctp/src/association/association_internal/association_internal_test.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,10 @@ impl Conn for DumbConn {
4646
async fn close(&self) -> Result<()> {
4747
Ok(())
4848
}
49+
50+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
51+
self
52+
}
4953
}
5054

5155
fn create_association_internal(config: Config) -> AssociationInternal {

sctp/src/association/association_test.rs

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2104,7 +2104,7 @@ struct FakeEchoConn {
21042104
}
21052105

21062106
impl FakeEchoConn {
2107-
fn type_erased() -> impl Conn + AsAny {
2107+
fn type_erased() -> impl Conn {
21082108
Self::default()
21092109
}
21102110
}
@@ -2121,16 +2121,6 @@ impl Default for FakeEchoConn {
21212121
}
21222122
}
21232123

2124-
trait AsAny {
2125-
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync);
2126-
}
2127-
2128-
impl AsAny for FakeEchoConn {
2129-
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
2130-
self
2131-
}
2132-
}
2133-
21342124
type UResult<T> = std::result::Result<T, util::Error>;
21352125

21362126
#[async_trait]
@@ -2182,6 +2172,10 @@ impl Conn for FakeEchoConn {
21822172
async fn close(&self) -> UResult<()> {
21832173
Ok(())
21842174
}
2175+
2176+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
2177+
self
2178+
}
21852179
}
21862180

21872181
//use std::io::Write;

turn/src/client/relay_conn.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,10 @@ impl<T: RelayConnObserver + Send + Sync> Conn for RelayConn<T> {
186186
.map_err(|err| util::Error::Other(format!("{err}")));
187187
Ok(())
188188
}
189+
190+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
191+
self
192+
}
189193
}
190194

191195
impl<T: RelayConnObserver + Send + Sync> RelayConnInternal<T> {

util/src/conn/conn_bridge.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,10 @@ impl Conn for BridgeConn {
6666
async fn close(&self) -> Result<()> {
6767
Ok(())
6868
}
69+
70+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
71+
self
72+
}
6973
}
7074

7175
pub type FilterCbFn = Box<dyn Fn(&Bytes) -> bool + Send + Sync>;

util/src/conn/conn_disconnected_packet.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,4 +58,8 @@ impl Conn for DisconnectedPacketConn {
5858
async fn close(&self) -> Result<()> {
5959
self.pconn.close().await
6060
}
61+
62+
fn as_any(&self) -> &(dyn std::any::Any + Send + Sync) {
63+
self
64+
}
6165
}

0 commit comments

Comments
 (0)