Struct parity_multiaddr::Multiaddr [−][src]
Representation of a Multiaddr.
Implementations
impl Multiaddr
[src][−]
pub fn empty() -> Self
[src][−]
Create a new, empty multiaddress.
pub fn with_capacity(n: usize) -> Self
[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>
[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<'_>) -> Self
[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][+]
impl Display for Multiaddr
[src][+]
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][+]
impl Hash for Multiaddr
[src][+]
impl<'a> IntoIterator for &'a Multiaddr
[src][+]
impl Ord for Multiaddr
[src][+]
impl PartialEq<Multiaddr> for Multiaddr
[src][+]
impl PartialOrd<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][+]
impl TryFrom<String> for Multiaddr
[src][+]
impl TryFrom<Vec<u8, Global>> for Multiaddr
[src][+]
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,
[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,
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> Same<T> for T
[src]
type Output = T
Should always be Self
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<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,