Struct libp2p_core::Multiaddr [−][src]
Representation of a Multiaddr.
Implementations
impl Multiaddr
[src]
pub fn empty() -> Multiaddr
[src]
Create a new, empty multiaddress.
pub fn with_capacity(n: usize) -> Multiaddr
[src]
Create a new, empty multiaddress with the given capacity.
pub fn len(&self) -> usize
[src]
Return the length in bytes of this multiaddress.
pub fn is_empty(&self) -> bool
[src]
Returns true if the length of this multiaddress is 0.
pub fn to_vec(&self) -> Vec<u8, Global>
[src]
Return a copy of this Multiaddr
's byte representation.
pub fn push(&mut self, p: Protocol<'_>)
[src]
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());
pub fn pop<'a>(&mut self) -> Option<Protocol<'a>>
[src]
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);
pub fn with(self, p: Protocol<'_>) -> Multiaddr
[src]
Like Multiaddr::push
but consumes self
.
pub fn iter(&self) -> Iter<'_>
[src]
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));
pub fn replace<'a, F>(&self, at: usize, by: F) -> Option<Multiaddr> where
F: FnOnce(&Protocol<'_>) -> Option<Protocol<'a>>,
[src]
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
impl AsRef<[u8]> for Multiaddr
[src]
impl Clone for Multiaddr
[src]
impl Debug for Multiaddr
[src]
impl<'de> Deserialize<'de> for Multiaddr
[src]
pub fn deserialize<D>(
deserializer: D
) -> Result<Multiaddr, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
[src]
deserializer: D
) -> Result<Multiaddr, <D as Deserializer<'de>>::Error> where
D: Deserializer<'de>,
impl Display for Multiaddr
[src]
pub fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
[src]
Convert a Multiaddr to a string
Example
use parity_multiaddr::Multiaddr; let address: Multiaddr = "/ip4/127.0.0.1/udt".parse().unwrap(); assert_eq!(address.to_string(), "/ip4/127.0.0.1/udt");
impl Eq for Multiaddr
[src]
impl From<IpAddr> for Multiaddr
[src]
impl From<Ipv4Addr> for Multiaddr
[src]
impl From<Ipv6Addr> for Multiaddr
[src]
impl<'a> From<Protocol<'a>> for Multiaddr
[src]
impl<'a> FromIterator<Protocol<'a>> for Multiaddr
[src]
pub fn from_iter<T>(iter: T) -> Multiaddr where
T: IntoIterator<Item = Protocol<'a>>,
[src]
T: IntoIterator<Item = Protocol<'a>>,
impl FromStr for Multiaddr
[src]
type Err = Error
The associated error which can be returned from parsing.
pub fn from_str(input: &str) -> Result<Multiaddr, Error>
[src]
impl Hash for Multiaddr
[src]
pub fn hash<__H>(&self, state: &mut __H) where
__H: Hasher,
[src]
__H: Hasher,
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<'a> IntoIterator for &'a Multiaddr
[src]
type Item = Protocol<'a>
The type of the elements being iterated over.
type IntoIter = Iter<'a>
Which kind of iterator are we turning this into?
pub fn into_iter(self) -> Iter<'a>
[src]
impl Ord for Multiaddr
[src]
pub fn cmp(&self, other: &Multiaddr) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl PartialEq<Multiaddr> for Multiaddr
[src]
impl PartialOrd<Multiaddr> for Multiaddr
[src]
pub fn partial_cmp(&self, other: &Multiaddr) -> Option<Ordering>
[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl Serialize for Multiaddr
[src]
pub fn serialize<S>(
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
[src]
&self,
serializer: S
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error> where
S: Serializer,
impl StructuralEq for Multiaddr
[src]
impl StructuralPartialEq for Multiaddr
[src]
impl<'a> TryFrom<&'a str> for Multiaddr
[src]
type Error = Error
The type returned in the event of a conversion error.
pub fn try_from(s: &'a str) -> Result<Multiaddr, Error>
[src]
impl TryFrom<String> for Multiaddr
[src]
type Error = Error
The type returned in the event of a conversion error.
pub fn try_from(s: String) -> Result<Multiaddr, Error>
[src]
impl TryFrom<Vec<u8, Global>> for Multiaddr
[src]
Auto Trait Implementations
impl RefUnwindSafe for Multiaddr
[src]
impl Send for Multiaddr
[src]
impl Sync for Multiaddr
[src]
impl Unpin for Multiaddr
[src]
impl UnwindSafe for Multiaddr
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ProtocolName for T where
T: AsRef<[u8]>,
[src]
T: AsRef<[u8]>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,