pub struct Tunnel { /* private fields */ }
Expand description
A tunnel endpoint. This type persists over tunnel reconstructions.
Use OnionContext::build_tunnel
to build a new tunnel.
We differentiate persistent and ephemeral tunnels. A persistent tunnel is characterized only by its ID and its endpoints, while an ephemeral tunnel is specific to the intermediate hops. As a user, you will only deal with persistent tunnels, which forward data to and from periodically rebuilt ephemeral tunnels.
Implementations§
Source§impl Tunnel
impl Tunnel
Sourcepub async fn read(&mut self) -> Result<Bytes>
pub async fn read(&mut self) -> Result<Bytes>
Receive data from the remote peer.
Returns an error if the connection was closed.
Sourcepub fn write(&self, buf: Bytes) -> Result<()>
pub fn write(&self, buf: Bytes) -> Result<()>
Send data to the remote peer.
The data may be split across multiple messages if it is too large to fit into a single one.
Returns an error if the connection was closed.
Sourcepub fn writer(&self) -> TunnelWriter
pub fn writer(&self) -> TunnelWriter
Create an additional write handle to this tunnel.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Tunnel
impl !RefUnwindSafe for Tunnel
impl Send for Tunnel
impl Sync for Tunnel
impl Unpin for Tunnel
impl !UnwindSafe for Tunnel
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more