Enum VirtualConnectionType
pub enum VirtualConnectionType {
LocalGroupPeer {
session_cid: u64,
peer_cid: u64,
},
ExternalGroupPeer {
session_cid: u64,
interserver_cid: u64,
peer_cid: u64,
},
LocalGroupServer {
session_cid: u64,
},
ExternalGroupServer {
session_cid: u64,
interserver_cid: u64,
},
}Expand description
Unified type representing all possible virtual connections.
This type is used throughout the protocol for packet routing and connection management. It covers both C2S and P2P connection scenarios.
§Variants
§C2S Connections
LocalGroupServer: Client connected to their home serverExternalGroupServer: Client connected through federated network (future)
§P2P Connections
LocalGroupPeer: P2P where both peers share the same serverExternalGroupPeer: P2P across federated servers (future)
Variants§
LocalGroupPeer
P2P connection on the same server.
ExternalGroupPeer
P2P connection across federated servers.
Fields
LocalGroupServer
Standard client-to-server connection.
ExternalGroupServer
Client-to-server through federated network.
Implementations§
§impl VirtualConnectionType
impl VirtualConnectionType
pub fn deserialize_from<'a, T>(this: T) -> Option<VirtualConnectionType>
pub fn deserialize_from<'a, T>(this: T) -> Option<VirtualConnectionType>
Deserializes from bytes.
pub fn get_target_cid(&self) -> u64
pub fn get_target_cid(&self) -> u64
Gets the target CID, agnostic to connection type.
pub fn get_session_cid(&self) -> u64
pub fn get_session_cid(&self) -> u64
Gets the session CID.
pub fn is_server_connection(&self) -> bool
pub fn is_server_connection(&self) -> bool
Returns true if this is a C2S connection.
pub fn is_peer_connection(&self) -> bool
pub fn is_peer_connection(&self) -> bool
Returns true if this is a P2P connection.
pub fn try_as_peer_connection(&self) -> Option<PeerConnectionType>
pub fn try_as_peer_connection(&self) -> Option<PeerConnectionType>
Attempts to convert to a PeerConnectionType.
pub fn try_as_client_connection(&self) -> Option<ClientConnectionType>
pub fn try_as_client_connection(&self) -> Option<ClientConnectionType>
Attempts to convert to a ClientConnectionType.
pub fn is_local_group(&self) -> bool
pub fn is_local_group(&self) -> bool
Returns true if this is a local group connection (same server).
pub fn is_external_group(&self) -> bool
pub fn is_external_group(&self) -> bool
Returns true if this is an external group connection (federated).
pub fn set_target_cid(&mut self, target_cid: u64)
pub fn set_target_cid(&mut self, target_cid: u64)
Sets the target CID (for P2P connections only).
pub fn set_session_cid(&mut self, cid: u64)
pub fn set_session_cid(&mut self, cid: u64)
Sets the session CID.
Trait Implementations§
§impl Clone for VirtualConnectionType
impl Clone for VirtualConnectionType
§fn clone(&self) -> VirtualConnectionType
fn clone(&self) -> VirtualConnectionType
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for VirtualConnectionType
impl Debug for VirtualConnectionType
§impl<'de> Deserialize<'de> for VirtualConnectionType
impl<'de> Deserialize<'de> for VirtualConnectionType
§fn deserialize<__D>(
__deserializer: __D,
) -> Result<VirtualConnectionType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<VirtualConnectionType, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
§impl Display for VirtualConnectionType
impl Display for VirtualConnectionType
§impl From<ClientConnectionType> for VirtualConnectionType
impl From<ClientConnectionType> for VirtualConnectionType
§fn from(client: ClientConnectionType) -> VirtualConnectionType
fn from(client: ClientConnectionType) -> VirtualConnectionType
§impl From<PeerConnectionType> for VirtualConnectionType
impl From<PeerConnectionType> for VirtualConnectionType
§fn from(peer: PeerConnectionType) -> VirtualConnectionType
fn from(peer: PeerConnectionType) -> VirtualConnectionType
§impl Hash for VirtualConnectionType
impl Hash for VirtualConnectionType
§impl PartialEq for VirtualConnectionType
impl PartialEq for VirtualConnectionType
§impl Serialize for VirtualConnectionType
impl Serialize for VirtualConnectionType
§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl Copy for VirtualConnectionType
impl Eq for VirtualConnectionType
impl StructuralPartialEq for VirtualConnectionType
Auto Trait Implementations§
impl Freeze for VirtualConnectionType
impl RefUnwindSafe for VirtualConnectionType
impl Send for VirtualConnectionType
impl Sync for VirtualConnectionType
impl Unpin for VirtualConnectionType
impl UnwindSafe for VirtualConnectionType
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> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T, J> IfEqConditional<J> for Twhere
T: PartialEq,
impl<T, J> IfEqConditional<J> for Twhere
T: PartialEq,
§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§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<'a, T> SyncIO for Twhere
T: Serialize + Deserialize<'a>,
impl<'a, T> SyncIO for Twhere
T: Serialize + Deserialize<'a>,
§fn serialize_to_vector(&self) -> Result<Vec<u8>, AccountError>where
Self: Serialize,
fn serialize_to_vector(&self) -> Result<Vec<u8>, AccountError>where
Self: Serialize,
§fn deserialize_from_vector<'a>(input: &'a [u8]) -> Result<Self, AccountError>where
Self: Deserialize<'a>,
fn deserialize_from_vector<'a>(input: &'a [u8]) -> Result<Self, AccountError>where
Self: Deserialize<'a>,
§fn deserialize_from_owned_vector(input: Vec<u8>) -> Result<Self, AccountError>where
Self: DeserializeOwned,
fn deserialize_from_owned_vector(input: Vec<u8>) -> Result<Self, AccountError>where
Self: DeserializeOwned,
§fn deserialize_in_place<'a, R, T>(
reader: R,
place: &mut T,
) -> Result<(), AccountError>where
T: Deserialize<'a>,
R: BincodeRead<'a>,
fn deserialize_in_place<'a, R, T>(
reader: R,
place: &mut T,
) -> Result<(), AccountError>where
T: Deserialize<'a>,
R: BincodeRead<'a>,
§fn serialize_into_buf(&self, buf: &mut BytesMut) -> Result<(), AccountError>where
Self: Serialize,
fn serialize_into_buf(&self, buf: &mut BytesMut) -> Result<(), AccountError>where
Self: Serialize,
§fn serialize_into_slice(&self, slice: &mut [u8]) -> Result<(), AccountError>where
Self: Serialize,
fn serialize_into_slice(&self, slice: &mut [u8]) -> Result<(), AccountError>where
Self: Serialize,
§fn serialized_size(&self) -> Option<usize>where
Self: Serialize,
fn serialized_size(&self) -> Option<usize>where
Self: Serialize,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.