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() -> Self
pub fn new() -> Self
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) -> Self
pub fn from_string(code: String) -> Self
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§impl<'de> Deserialize<'de> for RendezvousCode
impl<'de> Deserialize<'de> for RendezvousCode
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for RendezvousCode
impl Display for RendezvousCode
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