cuprate_p2p_transport/
disabled.rs

1use std::{
2    io,
3    marker::PhantomData,
4    pin::Pin,
5    task::{Context, Poll},
6};
7
8use futures::Stream;
9use tokio_util::codec::{FramedRead, FramedWrite};
10
11use cuprate_p2p_core::NetworkZone;
12use cuprate_wire::MoneroWireCodec;
13
14/// In proxied clearnet mode, inbound is disabled.
15pub struct DisabledListener<Z: NetworkZone, R, W> {
16    _zone: PhantomData<Z>,
17    _reader: PhantomData<R>,
18    _writer: PhantomData<W>,
19}
20
21impl<Z: NetworkZone, R, W> Stream for DisabledListener<Z, R, W> {
22    type Item = Result<
23        (
24            Option<Z::Addr>,
25            FramedRead<R, MoneroWireCodec>,
26            FramedWrite<W, MoneroWireCodec>,
27        ),
28        io::Error,
29    >;
30
31    fn poll_next(self: Pin<&mut Self>, _cx: &mut Context<'_>) -> Poll<Option<Self::Item>> {
32        // Panic within [`Transport::incoming_connection_listener`]
33        unreachable!()
34    }
35}