pub struct RendevouzCode { /* 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 RendevouzCode
impl RendevouzCode
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::RendevouzCode;
let code1 = RendevouzCode::new();
let code2 = RendevouzCode::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::RendevouzCode;
let code = RendevouzCode::from_string("ABC-DEF-GHI".to_string());
assert_eq!(code.as_str(), "ABC-DEF-GHI");Trait Implementations§
Source§impl Clone for RendevouzCode
impl Clone for RendevouzCode
Source§fn clone(&self) -> RendevouzCode
fn clone(&self) -> RendevouzCode
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 RendevouzCode
impl Debug for RendevouzCode
Source§impl Default for RendevouzCode
impl Default for RendevouzCode
Source§impl<'de> Deserialize<'de> for RendevouzCode
impl<'de> Deserialize<'de> for RendevouzCode
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 RendevouzCode
impl Display for RendevouzCode
Auto Trait Implementations§
impl Freeze for RendevouzCode
impl RefUnwindSafe for RendevouzCode
impl Send for RendevouzCode
impl Sync for RendevouzCode
impl Unpin for RendevouzCode
impl UnsafeUnpin for RendevouzCode
impl UnwindSafe for RendevouzCode
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