pub struct VersionManager { /* private fields */ }
Expand description
Protocol version manager
Implementations§
Source§impl VersionManager
impl VersionManager
Sourcepub fn new(current_version: ProtocolVersion) -> Self
pub fn new(current_version: ProtocolVersion) -> Self
Create a new version manager
Sourcepub fn negotiate_version(
&self,
peer_versions: &[ProtocolVersion],
peer_preferred: &ProtocolVersion,
) -> Result<ProtocolVersion, VersionError>
pub fn negotiate_version( &self, peer_versions: &[ProtocolVersion], peer_preferred: &ProtocolVersion, ) -> Result<ProtocolVersion, VersionError>
Negotiate protocol version with peer
Sourcepub fn migrate_message(
&self,
message: &Message,
from_version: &ProtocolVersion,
to_version: &ProtocolVersion,
) -> Result<Message, VersionError>
pub fn migrate_message( &self, message: &Message, from_version: &ProtocolVersion, to_version: &ProtocolVersion, ) -> Result<Message, VersionError>
Migrate message between protocol versions
Sourcepub fn is_feature_available(&self, feature: &str) -> bool
pub fn is_feature_available(&self, feature: &str) -> bool
Check if a feature is available in current version
Sourcepub fn current_version(&self) -> &ProtocolVersion
pub fn current_version(&self) -> &ProtocolVersion
Get current version
Sourcepub fn registry(&self) -> &VersionRegistry
pub fn registry(&self) -> &VersionRegistry
Get version registry
Sourcepub fn set_preferences(&mut self, preferences: VersionPreferences)
pub fn set_preferences(&mut self, preferences: VersionPreferences)
Update preferences
Sourcepub fn preferences(&self) -> &VersionPreferences
pub fn preferences(&self) -> &VersionPreferences
Get preferences
Auto Trait Implementations§
impl Freeze for VersionManager
impl !RefUnwindSafe for VersionManager
impl Send for VersionManager
impl Sync for VersionManager
impl Unpin for VersionManager
impl !UnwindSafe for VersionManager
Blanket Implementations§
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> 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<'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
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