pub struct ReadEnd<R, Buffer, Auxiliary = ()> { /* private fields */ }
Expand description

The ReadEnd for the lowlevel API.

Implementations

Must be called once right after super::connect to receive the hello message from the server.

Restart on Error

Only when the returned error is Error::InvalidResponseId or Error::AwaitableError, can the function be restarted.

Upon other errors Error::IOError, Error::FormatError and Error::RecursiveErrors, the sftp session has to be discarded.

Example
let readend = ...;
loop {
    let new_requests_submit = readend.wait_for_new_request().await;
    if new_requests_submit == 0 {
        break;
    }

    // If attempt to read in more than new_requests_submit, then
    // `read_in_one_packet` might block forever.
    for _ in 0..new_requests_submit {
        readend.read_in_one_packet().await.unwrap();
    }
}
Cancel Safety

This function is not cancel safe.

Dropping the future might cause the response packet to be partially read, and the next read would treat the partial response as a new response.

Wait for next packet to be readable.

Return Ok(()) if next packet is ready and readable, Error::IOError(io_error) where io_error.kind() == ErrorKind::UnexpectedEof if EOF is met.

Cancel Safety

This function is cancel safe.

Must be called once right after super::connect to receive the hello message from the server.

Restart on Error

Only when the returned error is Error::InvalidResponseId or Error::AwaitableError, can the function be restarted.

Upon other errors Error::IOError, Error::FormatError and Error::RecursiveErrors, the sftp session has to be discarded.

Cancel Safety

This function is not cancel safe.

Dropping the future might cause the response packet to be partially read, and the next read would treat the partial response as a new response.

Wait for next packet to be readable.

Return Ok(()) if next packet is ready and readable, Error::IOError(io_error) where io_error.kind() == ErrorKind::UnexpectedEof if EOF is met.

Cancel Safety

This function is cancel safe.

Return the SharedData held by ReadEnd.

Trait Implementations

Formats the value using the given formatter. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

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

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.