[]Struct libp2p::Multiaddr

pub struct Multiaddr { /* fields omitted */ }

Representation of a Multiaddr.

Methods

impl Multiaddr

Create a new, empty multiaddress.

Returns the raw bytes representation of the multiaddr.

Return a copy to disallow changing the bytes directly

Produces a Multiaddr from its bytes representation.

Extracts a slice containing the entire underlying vector.

Wrap a given Multiaddr and return the combination.

Examples

use parity_multiaddr::Multiaddr;

let address: Multiaddr = "/ip4/127.0.0.1".parse().unwrap();
let nested = address.encapsulate("/udt").unwrap();
assert_eq!(nested, "/ip4/127.0.0.1/udt".parse().unwrap());

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.append(Protocol::Tcp(10000));
assert_eq!(address, "/ip4/127.0.0.1/tcp/10000".parse().unwrap());

Remove the outermost address.

Examples

use parity_multiaddr::{Multiaddr, ToMultiaddr};

let address: Multiaddr = "/ip4/127.0.0.1/udt/sctp/5678".parse().unwrap();
let unwrapped = address.decapsulate("/udt").unwrap();
assert_eq!(unwrapped, "/ip4/127.0.0.1".parse().unwrap());

assert_eq!(
    address.decapsulate("/udt").unwrap(),
    "/ip4/127.0.0.1".to_multiaddr().unwrap()
);

Returns the original if the passed in address is not found

use parity_multiaddr::ToMultiaddr;

let address = "/ip4/127.0.0.1/udt/sctp/5678".to_multiaddr().unwrap();
let unwrapped = address.decapsulate("/ip4/127.0.1.1").unwrap();
assert_eq!(unwrapped, address);

Returns the components of this multiaddress.

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));

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);

Trait Implementations

impl Serialize for Multiaddr

impl<'de> Deserialize<'de> for Multiaddr

impl PartialEq<Multiaddr> for Multiaddr

impl<'a> IntoIterator for &'a Multiaddr

The type of the elements being iterated over.

Which kind of iterator are we turning this into?

impl Eq for Multiaddr

impl Debug for Multiaddr

impl FromStr for Multiaddr

The associated error which can be returned from parsing.

impl ToMultiaddr for Multiaddr

impl<'a> From<Protocol<'a>> for Multiaddr

impl Hash for Multiaddr

Feeds a slice of this type into the given [Hasher]. Read more

impl Display for Multiaddr

Convert a Multiaddr to a string

Examples

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 Clone for Multiaddr

Performs copy-assignment from source. Read more

impl<'a> FromIterator<Protocol<'a>> for Multiaddr

Auto Trait Implementations

impl Send for Multiaddr

impl Sync for Multiaddr

Blanket Implementations

impl<T> From for T
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

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

impl<T, U> TryFrom for T where
    T: From<U>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

🔬 This is a nightly-only experimental API. (try_from)

The type returned in the event of a conversion error.

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

impl<T> Same for T

Should always be Self

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

impl<T> Erased for T

impl<T> Erased for T

impl<T> Typeable for T where
    T: Any

Get the TypeId of this object.