[][src]Struct libp2p::Multiaddr

pub struct Multiaddr { /* fields omitted */ }

Representation of a Multiaddr.


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 to_vec(&self) -> Vec<u8>[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.


use parity_multiaddr::{Multiaddr, Protocol};

let mut address: Multiaddr = "/ip4/".parse().unwrap();
assert_eq!(address, "/ip4/".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/".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.


use std::net::Ipv4Addr;
use parity_multiaddr::{Multiaddr, Protocol};

let address: Multiaddr = "/ip4/".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>>, 

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]

impl Display for Multiaddr[src]

fn fmt(&self, f: &mut Formatter) -> Result<(), Error>[src]

Convert a Multiaddr to a string


use parity_multiaddr::Multiaddr;

let address: Multiaddr = "/ip4/".parse().unwrap();
assert_eq!(address.to_string(), "/ip4/");

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]

impl FromStr for Multiaddr[src]

type Err = Error

The associated error which can be returned from parsing.

impl Hash for Multiaddr[src]

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?

impl PartialEq<Multiaddr> for Multiaddr[src]

impl Serialize for Multiaddr[src]

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.

impl TryFrom<String> for Multiaddr[src]

type Error = Error

The type returned in the event of a conversion error.

impl TryFrom<Vec<u8>> for Multiaddr[src]

type Error = Error

The type returned in the event of a conversion error.

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

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

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

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

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 

impl<T> From<T> for T[src]

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

impl<T> ProtocolName for T where
    T: AsRef<[u8]>, 

impl<T> Same<T> for T[src]

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.

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