pub struct Path { /* private fields */ }Expand description
An open network transmission within a multipath-enabled connection.
As long as a Path or WeakPathHandle is alive, it is ensured that the
PathStats for this path are not dropped even after the path is abandoned.
Implementations§
Source§impl Path
impl Path
Sourcepub fn weak_handle(&self) -> WeakPathHandle
pub fn weak_handle(&self) -> WeakPathHandle
Returns a WeakPathHandle for this path.
Holding a WeakPathHandle does not keep a connection alive, but ensures that the
path’s stats are not dropped until the underlying connection is dropped, even if the
path is abandoned.
Sourcepub fn status(&self) -> Result<PathStatus, ClosedPath>
pub fn status(&self) -> Result<PathStatus, ClosedPath>
The current local PathStatus of this path.
Sourcepub fn set_status(
&self,
status: PathStatus,
) -> Result<PathStatus, SetPathStatusError>
pub fn set_status( &self, status: PathStatus, ) -> Result<PathStatus, SetPathStatusError>
Sets the PathStatus of this path.
Returns the previous status of the path.
Sourcepub fn close(&self) -> Result<(), ClosePathError>
pub fn close(&self) -> Result<(), ClosePathError>
Closes this path.
The path is immediately considered closed by the local endpoint. Once the state is removed,
after a short period of time for any in-flight packets, a PathEvent::Abandoned is
returned.
Sourcepub fn set_max_idle_timeout(
&self,
timeout: Option<Duration>,
) -> Result<Option<Duration>, ClosedPath>
pub fn set_max_idle_timeout( &self, timeout: Option<Duration>, ) -> Result<Option<Duration>, ClosedPath>
Sets the max idle timeout for a specific path
See TransportConfig::default_path_max_idle_timeout for details.
Returns the previous value of the setting.
Sourcepub fn set_keep_alive_interval(
&self,
interval: Option<Duration>,
) -> Result<Option<Duration>, ClosedPath>
pub fn set_keep_alive_interval( &self, interval: Option<Duration>, ) -> Result<Option<Duration>, ClosedPath>
Sets the keep_alive_interval for a specific path
See TransportConfig::default_path_keep_alive_interval for details.
Returns the previous value of the setting.
Sourcepub fn observed_external_addr(&self) -> Result<AddressDiscovery, ClosedPath>
pub fn observed_external_addr(&self) -> Result<AddressDiscovery, ClosedPath>
Track changes on our external address as reported by the peer.
If the address-discovery extension is not negotiated, the stream will never return.
Sourcepub fn remote_address(&self) -> Result<SocketAddr, ClosedPath>
pub fn remote_address(&self) -> Result<SocketAddr, ClosedPath>
The peer’s UDP address for this path.
Sourcepub fn local_ip(&self) -> Result<Option<IpAddr>, ClosedPath>
pub fn local_ip(&self) -> Result<Option<IpAddr>, ClosedPath>
The local IP used for this path, if known.
Returns Ok(None) for clients or when the platform does not expose this information; see
noq_udp::RecvMeta::dst_ip for supported platforms.
Sourcepub fn network_path(&self) -> Result<FourTuple, ClosedPath>
pub fn network_path(&self) -> Result<FourTuple, ClosedPath>
The network path used for this path.
Returns a FourTuple, combining Self::remote_address and Self::local_ip.
Sourcepub fn ping(&self) -> Result<(), ClosedPath>
pub fn ping(&self) -> Result<(), ClosedPath>
Ping the remote endpoint over this path.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Path
impl RefUnwindSafe for Path
impl Send for Path
impl Sync for Path
impl Unpin for Path
impl UnwindSafe for Path
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more