pub struct RendezvousCode { /* private fields */ }Expand description
A temporary rendezvous code for peer discovery.
Rendezvous codes are short, human-readable identifiers (format: “ABC-DEF-GHI”) that temporarily map to a client’s identity on the proxy server.
Implementations§
Source§impl RendezvousCode
impl RendezvousCode
Sourcepub fn new() -> RendezvousCode
pub fn new() -> RendezvousCode
Generate a new random rendezvous code.
Creates a 9-character code from the alphanumeric alphabet (A-Z, 0-9), formatted with hyphen separators (e.g., “ABC-DEF-GHI”).
§Entropy
With an alphabet of 36 characters and 9 positions:
- Total possibilities: 36^9 = 101,559,956,668,416
- Given the 5-minute lifetime, brute-force is impractical
§Examples
use ap_proxy_protocol::RendezvousCode;
let code1 = RendezvousCode::new();
let code2 = RendezvousCode::new();
// Each call generates a different random code
assert_ne!(code1.as_str(), code2.as_str());
// Format is always ABC-DEF-GHI style
assert_eq!(code1.as_str().len(), 11); // 9 chars + 2 hyphens
assert_eq!(code1.as_str().chars().nth(3), Some('-'));
assert_eq!(code1.as_str().chars().nth(7), Some('-'));Sourcepub fn from_string(code: String) -> RendezvousCode
pub fn from_string(code: String) -> RendezvousCode
Create a rendezvous code from an existing string.
Useful for:
- Testing with known codes
- Parsing user input
- Deserializing from storage
No validation is performed - the caller is responsible for ensuring the code is in the correct format.
§Examples
use ap_proxy_protocol::RendezvousCode;
let code = RendezvousCode::from_string("ABC-DEF-GHI".to_string());
assert_eq!(code.as_str(), "ABC-DEF-GHI");Trait Implementations§
Source§impl Clone for RendezvousCode
impl Clone for RendezvousCode
Source§fn clone(&self) -> RendezvousCode
fn clone(&self) -> RendezvousCode
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RendezvousCode
impl Debug for RendezvousCode
Source§impl Default for RendezvousCode
impl Default for RendezvousCode
Source§fn default() -> RendezvousCode
fn default() -> RendezvousCode
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for RendezvousCode
impl<'de> Deserialize<'de> for RendezvousCode
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<RendezvousCode, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<RendezvousCode, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for RendezvousCode
impl Display for RendezvousCode
Source§impl Serialize for RendezvousCode
impl Serialize for RendezvousCode
Source§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,
Serialize this value into the given Serde serializer. Read more
Auto Trait Implementations§
impl Freeze for RendezvousCode
impl RefUnwindSafe for RendezvousCode
impl Send for RendezvousCode
impl Sync for RendezvousCode
impl Unpin for RendezvousCode
impl UnsafeUnpin for RendezvousCode
impl UnwindSafe for RendezvousCode
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