pub struct LinkNegotiationPayload {
pub link_id: String,
pub slim_version: String,
pub is_reply: bool,
pub link_ecdh_public_key: Vec<u8>,
pub connection_type: i32,
pub node_id: String,
pub deployment_name: String,
}Expand description
Link Negotiation Sent upon connection establishment to negotiate a common link identifier and exchange SLIM version information. Not routed; handled locally by the receiving SLIM instance.
Fields§
§link_id: StringCommon link identifier agreed upon by both peers. The connecting side generates this value; the accepting side echoes it back.
slim_version: StringSLIM version of the sender (semver string, e.g. “0.11.4”).
is_reply: boolTrue if this message is a reply to a negotiation request.
link_ecdh_public_key: Vec<u8>X25519 ephemeral public key (32 bytes) for per-link HMAC key agreement between nodes. Empty when absent (legacy peers); both sides must send a valid key to enable header HMAC.
connection_type: i32Connection type advertised by the initiator.
node_id: StringUnique node identifier of the sender. Used by peer replicas to identify which node is on the other end of a connection. Empty for legacy peers that don’t send this field.
deployment_name: StringPeer group identifier. When non-empty and connection_type is LINK_CONNECTION_TYPE_PEER, the server verifies both sides belong to the same peer group before upgrading the connection. Empty for non-peer connections.
Implementations§
Source§impl LinkNegotiationPayload
impl LinkNegotiationPayload
Sourcepub fn connection_type(&self) -> LinkConnectionType
pub fn connection_type(&self) -> LinkConnectionType
Returns the enum value of connection_type, or the default if the field is set to an invalid enum value.
Sourcepub fn set_connection_type(&mut self, value: LinkConnectionType)
pub fn set_connection_type(&mut self, value: LinkConnectionType)
Sets connection_type to the provided enum value.
Trait Implementations§
Source§impl Clone for LinkNegotiationPayload
impl Clone for LinkNegotiationPayload
Source§fn clone(&self) -> LinkNegotiationPayload
fn clone(&self) -> LinkNegotiationPayload
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LinkNegotiationPayload
impl Debug for LinkNegotiationPayload
Source§impl Default for LinkNegotiationPayload
impl Default for LinkNegotiationPayload
Source§fn default() -> LinkNegotiationPayload
fn default() -> LinkNegotiationPayload
impl Eq for LinkNegotiationPayload
Source§impl Hash for LinkNegotiationPayload
impl Hash for LinkNegotiationPayload
Source§impl Message for LinkNegotiationPayload
impl Message for LinkNegotiationPayload
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl PartialEq for LinkNegotiationPayload
impl PartialEq for LinkNegotiationPayload
Source§fn eq(&self, other: &LinkNegotiationPayload) -> bool
fn eq(&self, other: &LinkNegotiationPayload) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for LinkNegotiationPayload
Auto Trait Implementations§
impl Freeze for LinkNegotiationPayload
impl RefUnwindSafe for LinkNegotiationPayload
impl Send for LinkNegotiationPayload
impl Sync for LinkNegotiationPayload
impl Unpin for LinkNegotiationPayload
impl UnsafeUnpin for LinkNegotiationPayload
impl UnwindSafe for LinkNegotiationPayload
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> 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
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.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>
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 moreSource§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>
T in a tonic::Request