[−][src]Struct susy_multiaddr::Multiaddr
Representation of a Multiaddr.
Methods
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 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 susy_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 susy_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 [push
] but more efficient if this Multiaddr
has no living clones.
ⓘImportant traits for Iter<'a>pub fn iter(&self) -> Iter
[src]
Returns the components of this multiaddress.
use std::net::Ipv4Addr; use susy_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 PartialEq<Multiaddr> for Multiaddr
[src]
impl AsRef<[u8]> for 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 From<IpAddr> for Multiaddr
[src]
impl From<Ipv4Addr> for Multiaddr
[src]
impl From<Ipv6Addr> 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 Display for Multiaddr
[src]
fn fmt(&self, f: &mut Formatter) -> Result
[src]
Convert a Multiaddr to a string
Examples
use susy_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 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 TryFrom<Bytes> for Multiaddr
[src]
type Error = Error
The type returned in the event of a conversion error.
fn try_from(v: Bytes) -> Result<Self>
[src]
impl TryFrom<BytesMut> for Multiaddr
[src]
type Error = Error
The type returned in the event of a conversion error.
fn try_from(v: BytesMut) -> Result<Self>
[src]
impl TryFrom<Vec<u8>> for Multiaddr
[src]
type Error = Error
The type returned in the event of a conversion error.
fn try_from(v: Vec<u8>) -> Result<Self>
[src]
impl TryFrom<String> for Multiaddr
[src]
type Error = Error
The type returned in the event of a conversion error.
fn try_from(s: String) -> Result<Multiaddr>
[src]
impl<'a> TryFrom<&'a str> for Multiaddr
[src]
type Error = Error
The type returned in the event of a conversion error.
fn try_from(s: &'a str) -> Result<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 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> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
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, U> TryInto 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.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
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>,