Struct libp2p_core::Multiaddr
source · [−]pub struct Multiaddr { /* private fields */ }
Expand description
Representation of a Multiaddr.
Implementations
sourceimpl Multiaddr
impl Multiaddr
sourcepub fn with_capacity(n: usize) -> Multiaddr
pub fn with_capacity(n: usize) -> Multiaddr
Create a new, empty multiaddress with the given capacity.
sourcepub fn push(&mut self, p: Protocol<'_>)
pub fn push(&mut self, p: Protocol<'_>)
Adds an already-parsed address component to the end of this multiaddr.
Examples
use parity_multiaddr::{Multiaddr, Protocol};
let mut address: Multiaddr = "/ip4/127.0.0.1".parse().unwrap();
address.push(Protocol::Tcp(10000));
assert_eq!(address, "/ip4/127.0.0.1/tcp/10000".parse().unwrap());
sourcepub fn pop<'a>(&mut self) -> Option<Protocol<'a>>
pub fn pop<'a>(&mut self) -> Option<Protocol<'a>>
Pops the last Protocol
of this multiaddr, or None
if the multiaddr is empty.
use parity_multiaddr::{Multiaddr, Protocol};
let mut address: Multiaddr = "/ip4/127.0.0.1/udt/sctp/5678".parse().unwrap();
assert_eq!(address.pop().unwrap(), Protocol::Sctp(5678));
assert_eq!(address.pop().unwrap(), Protocol::Udt);
sourcepub fn with(self, p: Protocol<'_>) -> Multiaddr
pub fn with(self, p: Protocol<'_>) -> Multiaddr
Like Multiaddr::push
but consumes self
.
sourcepub fn iter(&self) -> Iter<'_>
pub fn iter(&self) -> Iter<'_>
Returns the components of this multiaddress.
Example
use std::net::Ipv4Addr;
use parity_multiaddr::{Multiaddr, Protocol};
let address: Multiaddr = "/ip4/127.0.0.1/udt/sctp/5678".parse().unwrap();
let components = address.iter().collect::<Vec<_>>();
assert_eq!(components[0], Protocol::Ip4(Ipv4Addr::new(127, 0, 0, 1)));
assert_eq!(components[1], Protocol::Udt);
assert_eq!(components[2], Protocol::Sctp(5678));
sourcepub fn replace<'a, F>(&self, at: usize, by: F) -> Option<Multiaddr> where
F: FnOnce(&Protocol<'_>) -> Option<Protocol<'a>>,
pub fn replace<'a, F>(&self, at: usize, by: F) -> Option<Multiaddr> where
F: FnOnce(&Protocol<'_>) -> Option<Protocol<'a>>,
Replace a Protocol
at some position in this Multiaddr
.
The parameter at
denotes the index of the protocol at which the function
by
will be applied to the current protocol, returning an optional replacement.
If at
is out of bounds or by
does not yield a replacement value,
None
will be returned. Otherwise a copy of this Multiaddr
with the
updated Protocol
at position at
will be returned.
Trait Implementations
sourceimpl<'de> Deserialize<'de> for Multiaddr
impl<'de> Deserialize<'de> for Multiaddr
sourcepub fn deserialize<D>(
deserializer: D
) -> Result<Multiaddr, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
pub fn deserialize<D>(
deserializer: D
) -> Result<Multiaddr, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
sourceimpl<'a> FromIterator<Protocol<'a>> for Multiaddr
impl<'a> FromIterator<Protocol<'a>> for Multiaddr
sourceimpl<'a> IntoIterator for &'a Multiaddr
impl<'a> IntoIterator for &'a Multiaddr
sourceimpl Ord for Multiaddr
impl Ord for Multiaddr
sourceimpl PartialOrd<Multiaddr> for Multiaddr
impl PartialOrd<Multiaddr> for Multiaddr
sourcepub fn partial_cmp(&self, other: &Multiaddr) -> Option<Ordering>
pub fn partial_cmp(&self, other: &Multiaddr) -> Option<Ordering>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
1.0.0 · sourcefn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
sourceimpl Serialize for Multiaddr
impl Serialize for Multiaddr
sourcepub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
pub 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
impl Eq for Multiaddr
impl StructuralEq for Multiaddr
impl StructuralPartialEq for Multiaddr
Auto Trait Implementations
impl RefUnwindSafe for Multiaddr
impl Send for Multiaddr
impl Sync for Multiaddr
impl Unpin for Multiaddr
impl UnwindSafe for Multiaddr
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more