Skip to main content

File

Struct File 

Source
pub struct File<T = TokioTcpTransport> { /* private fields */ }
Expand description

One open file handle on a tree-connected share.

Implementations§

Source§

impl<T> File<T>
where T: SmbTransport + Send,

Source

pub fn path(&self) -> &str

Returns the file path relative to the connected share.

Source

pub fn file_id(&self) -> FileId

Returns the active SMB file identifier.

Source

pub fn durable_handle(&self) -> Option<&DurableHandle>

Returns the durable reconnect state captured for this file, if requested.

Source

pub fn resilient_handle(&self) -> Option<ResilientHandle>

Returns the resiliency state captured for this file, if requested.

Source

pub fn connection(&self) -> &Connection<T, TreeConnected>

Returns the wrapped tree-connected connection.

Source

pub fn connection_mut(&mut self) -> &mut Connection<T, TreeConnected>

Returns a mutable reference to the wrapped tree-connected connection.

Source

pub async fn read_all(&mut self) -> Result<Vec<u8>, CoreError>

Reads the full contents of the open file.

Source

pub async fn read_to_end(&mut self) -> Result<Vec<u8>, CoreError>

Reads the full contents of the open file.

This is an alias for File::read_all that matches the standard async I/O naming convention used by Rust callers.

Source

pub async fn write_all(&mut self, data: &[u8]) -> Result<(), CoreError>

Writes the full provided buffer to the open file starting at offset zero.

Source

pub async fn flush(&mut self) -> Result<(), CoreError>

Flushes the open file handle.

Source

pub async fn sync_all(&mut self) -> Result<(), CoreError>

Flushes all buffered SMB state for the open file handle.

This is an alias for File::flush that matches common filesystem terminology used by embedders.

Source

pub async fn stat(&mut self) -> Result<FileMetadata, CoreError>

Queries metadata for the open file handle.

Source

pub async fn request_resiliency( &mut self, timeout: u32, ) -> Result<ResilientHandle, CoreError>

Requests handle resiliency for the current file and stores the result for future reconnects.

Source

pub async fn close(self) -> Result<Share<T>, CoreError>

Closes the file and returns the tree-connected share wrapper.

Source

pub fn into_parts( self, ) -> (Share<T>, FileId, Option<DurableHandle>, Option<ResilientHandle>)

Consumes the file wrapper and returns the share wrapper plus low-level file state.

Trait Implementations§

Source§

impl<T: Debug> Debug for File<T>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<T> Freeze for File<T>
where T: Freeze,

§

impl<T> RefUnwindSafe for File<T>
where T: RefUnwindSafe,

§

impl<T> Send for File<T>
where T: Send,

§

impl<T> Sync for File<T>
where T: Sync,

§

impl<T> Unpin for File<T>
where T: Unpin,

§

impl<T> UnsafeUnpin for File<T>
where T: UnsafeUnpin,

§

impl<T> UnwindSafe for File<T>
where T: 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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more