Struct SendFile

Source
pub struct SendFile<F, S> { /* private fields */ }
Expand description

Wrapper around the sendfile system call.

From the sendfile manual ($ man sendfile 2):

sendfile copies data between one file descriptor and another. Because this copying is done within the kernel, sendfile is more efficient than the combination of read and write, which would require transferring data to and from user space.

§Platform support

§Notes

The Future implementation doesn’t implement waking, it is up to the caller to ensure future is polled again once the socket is ready to receive more data.

Implementations§

Source§

impl<F, S> SendFile<F, S>

Source

pub fn into_inner(self) -> (F, S)

Retrieve the file and socket.

Source

pub fn written(&self) -> usize

Returns the number of bytes written.

Trait Implementations§

Source§

impl<F: Debug, S: Debug> Debug for SendFile<F, S>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<F, S> Future for SendFile<F, S>
where F: AsRawFd + Unpin, S: AsRawFd + Unpin,

Source§

type Output = Result<(), Error>

The number of bytes written, or an I/O error.

Source§

fn poll(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<Self::Output>

Attempts to resolve the future to a final value, registering the current task for wakeup if the value is not yet available. Read more

Auto Trait Implementations§

§

impl<F, S> Freeze for SendFile<F, S>
where F: Freeze, S: Freeze,

§

impl<F, S> RefUnwindSafe for SendFile<F, S>

§

impl<F, S> Send for SendFile<F, S>
where F: Send, S: Send,

§

impl<F, S> Sync for SendFile<F, S>
where F: Sync, S: Sync,

§

impl<F, S> Unpin for SendFile<F, S>
where F: Unpin, S: Unpin,

§

impl<F, S> UnwindSafe for SendFile<F, S>
where F: UnwindSafe, S: UnwindSafe,

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> 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<F> IntoFuture for F
where F: Future,

Source§

type Output = <F as Future>::Output

The output that the future will produce on completion.
Source§

type IntoFuture = F

Which kind of future are we turning this into?
Source§

fn into_future(self) -> <F as IntoFuture>::IntoFuture

Creates a future from a value. 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.