pub struct PeerInfo {
pub id: PeerId,
pub address_list: Box<[Address]>,
pub created_at: u32,
pub expires_at: u32,
pub signature: Box<[u8; 64]>,
}Expand description
A signed node info.
Fields§
§id: PeerIdNode public key.
address_list: Box<[Address]>Multiple possible addresses for the same peer.
created_at: u32Unix timestamp when the info was generated.
expires_at: u32Unix timestamp up to which the info is valid.
signature: Box<[u8; 64]>A ed25519 signature of the info.
Implementations§
Source§impl PeerInfo
impl PeerInfo
pub const MAX_ADDRESSES: usize = 4usize
Sourcepub fn verify(&self, at: u32) -> bool
pub fn verify(&self, at: u32) -> bool
Fully verifies the peer info.
NOTE: Might be expensive since it requires signature verification.
Sourcepub fn verify_ext(&self, at: u32, signature_checked: &mut bool) -> bool
pub fn verify_ext(&self, at: u32, signature_checked: &mut bool) -> bool
Fully verifies the peer info.
NOTE: Might be expensive since it requires signature verification.
pub fn is_expired(&self, at: u32) -> bool
pub fn iter_addresses(&self) -> Iter<'_, Address>
Trait Implementations§
Source§impl<'de> Deserialize<'de> for PeerInfo
impl<'de> Deserialize<'de> for PeerInfo
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
impl Eq for PeerInfo
impl StructuralPartialEq for PeerInfo
Auto Trait Implementations§
impl Freeze for PeerInfo
impl RefUnwindSafe for PeerInfo
impl Send for PeerInfo
impl Sync for PeerInfo
impl Unpin for PeerInfo
impl UnwindSafe for PeerInfo
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
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§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
Compare self to
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>
Converts
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>
Converts
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