pub struct NegotiationResult {
pub protocol: String,
pub agreed_version: ProtocolVersion,
pub compatibility: CompatibilityLevel,
pub common_features: Vec<String>,
pub dropped_features: Vec<String>,
}Expand description
The outcome of a successful protocol version negotiation between two peers.
When negotiation fails entirely (e.g. unknown protocol or incompatible
version), ProtocolVersionManager::negotiate returns None.
Fields§
§protocol: StringThe protocol name that was negotiated.
agreed_version: ProtocolVersionThe version that both sides agreed to operate at.
This is the lower of the two versions (local min or remote version) ensuring backward compatibility.
compatibility: CompatibilityLevelOverall compatibility classification.
common_features: Vec<String>Features present on both sides — the effective feature set.
dropped_features: Vec<String>Features present locally but absent on the remote — unavailable for this session.
Trait Implementations§
Source§impl Clone for NegotiationResult
impl Clone for NegotiationResult
Source§fn clone(&self) -> NegotiationResult
fn clone(&self) -> NegotiationResult
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for NegotiationResult
impl RefUnwindSafe for NegotiationResult
impl Send for NegotiationResult
impl Sync for NegotiationResult
impl Unpin for NegotiationResult
impl UnsafeUnpin for NegotiationResult
impl UnwindSafe for NegotiationResult
Blanket Implementations§
impl<T> Allocation for T
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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> 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>
Converts
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>
Converts
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