RsyncClient

Struct RsyncClient 

Source
pub struct RsyncClient { /* private fields */ }
Expand description

The main client struct

Implementations§

Source§

impl RsyncClient

Source

pub async fn connect(url: &Url) -> Result<(RsyncClient, Vec<File>)>

Open a connection to an rsync server and read the initial file list. The url must have scheme rsync and contain at least one path element (module listing is not supported).

Source

pub async fn get(&self, file: &File) -> Result<impl AsyncRead>

Requests the transfer of a File. The referenced File must have been returned in the same call as self, or an error will be returned.

There are some worrying remarks in the rsync protocol documentation in openrsync. It is stated that requested files may be silently ommited from transfer, and that files are not necessarily transmited in the order they were requested. Effectively, this means that the only way to detect that a file wasn’t sent is to invoke close, and then to wait for the sender to signal the end of the connection. Without calling close, the returned AsyncRead may remain pending forever.

Source

pub async fn close(&mut self) -> Result<Stats>

Finalizes the connection and returns statistics about the transfer (See Stats). All files that have allready been requested will be transferred before the returned future completes. Only one call to this function can succeed per RsyncClient.

Trait Implementations§

Source§

impl Clone for RsyncClient

Source§

fn clone(&self) -> RsyncClient

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T> ErasedDestructor for T
where T: 'static,