[−][src]Struct parity_multiaddr::Multiaddr
Representation of a Multiaddr.
Methods
impl Multiaddr
[src]
pub fn empty() -> Multiaddr
[src]
Create a new, empty multiaddress.
pub fn into_bytes(self) -> Vec<u8>
[src]
Returns the raw bytes representation of the multiaddr.
pub fn to_bytes(&self) -> Vec<u8>
[src]
Return a copy to disallow changing the bytes directly
pub fn from_bytes(bytes: Vec<u8>) -> Result<Multiaddr>
[src]
Produces a Multiaddr
from its bytes representation.
pub fn as_slice(&self) -> &[u8]
[src]
Extracts a slice containing the entire underlying vector.
pub fn encapsulate<T: ToMultiaddr>(&self, input: T) -> Result<Multiaddr>
[src]
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());
pub fn append(&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.append(Protocol::Tcp(10000)); assert_eq!(address, "/ip4/127.0.0.1/tcp/10000".parse().unwrap());
pub fn decapsulate<T: ToMultiaddr>(&self, input: T) -> Result<Multiaddr>
[src]
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);
ⓘImportant traits for Iter<'a>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/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 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);
Trait Implementations
impl ToMultiaddr for Multiaddr
[src]
fn to_multiaddr(&self) -> Result<Multiaddr>
[src]
impl Clone for Multiaddr
[src]
fn clone(&self) -> Multiaddr
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<'a> From<Protocol<'a>> 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?
ⓘImportant traits for Iter<'a>fn into_iter(self) -> Iter<'a>
[src]
impl Eq for Multiaddr
[src]
impl PartialEq<Multiaddr> for Multiaddr
[src]
impl Display for Multiaddr
[src]
fn fmt(&self, f: &mut Formatter) -> Result
[src]
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 Debug for Multiaddr
[src]
impl FromStr for Multiaddr
[src]
type Err = Error
The associated error which can be returned from parsing.
fn from_str(input: &str) -> Result<Self>
[src]
impl Hash for Multiaddr
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
Feeds a slice of this type into the given [Hasher
]. Read more
impl<'a> FromIterator<Protocol<'a>> for Multiaddr
[src]
fn from_iter<T>(iter: T) -> Self where
T: IntoIterator<Item = Protocol<'a>>,
[src]
T: IntoIterator<Item = Protocol<'a>>,
impl Serialize for Multiaddr
[src]
impl<'de> Deserialize<'de> for Multiaddr
[src]
fn deserialize<D>(deserializer: D) -> StdResult<Self, D::Error> where
D: Deserializer<'de>,
[src]
D: Deserializer<'de>,
Auto Trait Implementations
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = !
try_from
)The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
try_from
)The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Same for T
type Output = T
Should always be Self
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,