Struct LocalAddress

Source
pub struct LocalAddress {
    address: AddrV2,
    last_connected: u64,
    state: AddressState,
    services: ServiceFlags,
    port: u16,
    pub id: usize,
}
Expand description

How do we store peers locally

Fields§

§address: AddrV2

An actual address

§last_connected: u64

Last time we successfully connected to this peer, only relevant is state == State::Tried

§state: AddressState

Our local state for this peer, as defined in AddressState

§services: ServiceFlags

Network services announced by this peer

§port: u16

Network port this peers listens to

§id: usize

Random id for this peer

Implementations§

Source§

impl LocalAddress

Source

pub fn new( address: AddrV2, last_connected: u64, state: AddressState, services: ServiceFlags, port: u16, id: usize, ) -> LocalAddress

Source

pub fn get_addrv2(&self) -> AddrV2

Get the [AddrV2] for this LocalAddress.

Source

pub fn get_socket_address(&self) -> SocketAddr

Get the SocketAddr for this LocalAddress.

Source

pub fn get_port(&self) -> u16

Get the port for this LocalAddress.

Source

pub fn set_port(&mut self, port: u16)

Set the port for this LocalAddress.

Source

pub fn get_services(&self) -> ServiceFlags

Get the [ServiceFlags] for this LocalAddress.

Source

pub fn set_services(&mut self, services: ServiceFlags)

Set the [ServiceFlags] for this LocalAddress.

Source

pub fn get_net_address(&self) -> IpAddr

Get the IpAddr for with this LocalAddress.

Source

const fn is_routable(&self) -> bool

Return whether the address can be reached from our node

Some addresses are not reachable from the global internet, those includes documentation, reserved and private ones ranges. Since we can’t connect with them, there’s no point into keeping them

Source

const fn is_routable_ipv4(ip: &Ipv4Addr) -> bool

Returns whether an ipv4 address is publicly routable

Source

const fn is_routable_ipv6(ip: &Ipv6Addr) -> bool

Returns whether an ipv6 address is publicly routable

Source

pub fn is_good_address(&self) -> bool

Return whether an address is good to connect to

Trait Implementations§

Source§

impl Clone for LocalAddress

Source§

fn clone(&self) -> LocalAddress

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for LocalAddress

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl From<AddrV2> for LocalAddress

Source§

fn from(value: AddrV2) -> Self

Converts to this type from the input type.
Source§

impl From<AddrV2Message> for LocalAddress

Source§

fn from(value: AddrV2Message) -> Self

Converts to this type from the input type.
Source§

impl From<DiskLocalAddress> for LocalAddress

Source§

fn from(value: DiskLocalAddress) -> Self

Converts to this type from the input type.
Source§

impl From<LocalAddress> for DiskLocalAddress

Source§

fn from(value: LocalAddress) -> Self

Converts to this type from the input type.
Source§

impl FromStr for LocalAddress

Source§

type Err = AddrParseError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl PartialEq for LocalAddress

Source§

fn eq(&self, other: &LocalAddress) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl TryFrom<&str> for LocalAddress

Source§

type Error = AddrParseError

The type returned in the event of a conversion error.
Source§

fn try_from(value: &str) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl StructuralPartialEq for LocalAddress

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FromRef<T> for T
where T: Clone,

§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more