pub struct FreePort(/* private fields */);Expand description
A wrapper around a port number that guarantees the port is free and manages its lifecycle
Implementations§
Source§impl FreePort
impl FreePort
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new FreePort by finding an available port
This method will attempt up to 16 times to find a free port by:
- Generating a random port number in the range 8000-65000
- Checking that it’s not already allocated in the global registry
- Attempting to bind to the port to verify it’s actually free
- Adding it to the global registry to prevent other threads from using it
§Panics
Panics if unable to find a free port after 16 attempts
Sourcepub fn as_addr(&self) -> SocketAddr
pub fn as_addr(&self) -> SocketAddr
Returns the port as a formatted string for binding addresses
Trait Implementations§
Auto Trait Implementations§
impl Freeze for FreePort
impl RefUnwindSafe for FreePort
impl Send for FreePort
impl Sync for FreePort
impl Unpin for FreePort
impl UnsafeUnpin for FreePort
impl UnwindSafe for FreePort
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
Source§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request