Struct surge_ping::Pinger[][src]

pub struct Pinger { /* fields omitted */ }

A Ping struct represents the state of one particular ping instance.

Examples

use std::time::Duration;

use surge_ping::Pinger;

#[tokio::main]
async fn main() {
    let mut pinger = Pinger::new("114.114.114.114".parse().unwrap()).unwrap();
    pinger.size(56).timeout(Duration::from_secs(1));
    let result = pinger.ping(0).await;
    println!("{:?}", result);
}

Implementations

impl Pinger[src]

pub fn new(host: IpAddr) -> Result<Pinger, SurgeError>[src]

Creates a new Ping instance from IpAddr.

pub fn bind_device(
    &mut self,
    interface: Option<&[u8]>
) -> Result<&mut Pinger, SurgeError>
[src]

Sets the value for the SO_BINDTODEVICE option on this socket.

If a socket is bound to an interface, only packets received from that particular interface are processed by the socket. Note that this only works for some socket types, particularly AF_INET sockets.

If interface is None or an empty string it removes the binding.

This function is only available on Fuchsia and Linux.

pub fn ident(&mut self, val: u16) -> &mut Pinger[src]

Set the identification of ICMP.

pub fn size(&mut self, size: usize) -> &mut Pinger[src]

Set the packet size.(default: 56)

pub fn timeout(&mut self, timeout: Duration) -> &mut Pinger[src]

The timeout of each Ping, in seconds. (default: 2s)

pub async fn ping(
    &self,
    seq_cnt: u16
) -> Result<(EchoReply, Duration), SurgeError>
[src]

Send Ping request with sequence number.

Trait Implementations

impl Clone for Pinger[src]

fn clone(&self) -> Pinger[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for Pinger[src]

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

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl !RefUnwindSafe for Pinger

impl Send for Pinger

impl Sync for Pinger

impl Unpin for Pinger

impl !UnwindSafe for Pinger

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

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

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

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

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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

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

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

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

pub fn vzip(self) -> V