pub struct MockForgeStorage { /* private fields */ }Expand description
Custom storage backend for libunftp that integrates with MockForge’s VFS
Implementations§
Source§impl MockForgeStorage
impl MockForgeStorage
pub fn new( vfs: Arc<VirtualFileSystem>, spec_registry: Arc<FtpSpecRegistry>, ) -> Self
Trait Implementations§
Source§impl Clone for MockForgeStorage
impl Clone for MockForgeStorage
Source§fn clone(&self) -> MockForgeStorage
fn clone(&self) -> MockForgeStorage
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for MockForgeStorage
impl Debug for MockForgeStorage
Source§impl<U: UserDetail + Send + Sync + 'static> StorageBackend<U> for MockForgeStorage
impl<U: UserDetail + Send + Sync + 'static> StorageBackend<U> for MockForgeStorage
Source§type Metadata = MockForgeMetadata
type Metadata = MockForgeMetadata
The concrete type of the metadata used by this storage backend.
Source§fn metadata<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 U,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Self::Metadata>> + Send + 'async_trait>>
fn metadata<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 U, path: P, ) -> Pin<Box<dyn Future<Output = Result<Self::Metadata>> + Send + 'async_trait>>
Returns the
Metadata for the given file.Source§fn list<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 U,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Vec<Fileinfo<PathBuf, Self::Metadata>>>> + Send + 'async_trait>>
fn list<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 U, path: P, ) -> Pin<Box<dyn Future<Output = Result<Vec<Fileinfo<PathBuf, Self::Metadata>>>> + Send + 'async_trait>>
Returns the list of files in the given directory.
Source§fn get<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 U,
path: P,
_start_pos: u64,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn AsyncRead + Send + Sync + Unpin>>> + Send + 'async_trait>>
fn get<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 U, path: P, _start_pos: u64, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AsyncRead + Send + Sync + Unpin>>> + Send + 'async_trait>>
Returns the content of the given file from offset start_pos.
The starting position will only be greater than zero if the storage back-end implementation
advertises to support partial reads through the supported_features method i.e. the result
from supported_features yield 1 if a logical and operation is applied with FEATURE_RESTART.
Source§fn put<'life0, 'life1, 'async_trait, P, R>(
&'life0 self,
_user: &'life1 U,
bytes: R,
path: P,
_start_pos: u64,
) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
fn put<'life0, 'life1, 'async_trait, P, R>( &'life0 self, _user: &'life1 U, bytes: R, path: P, _start_pos: u64, ) -> Pin<Box<dyn Future<Output = Result<u64>> + Send + 'async_trait>>
Writes bytes from the given reader to the specified path starting at offset start_pos in the file
Source§fn del<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 U,
path: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn del<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 U, path: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Deletes the file at the given path.
Source§fn mkd<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 U,
path: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn mkd<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 U, path: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Creates the given directory.
Source§fn rename<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 U,
from: P,
to: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn rename<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 U, from: P, to: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Renames the given file to the given new filename.
Source§fn rmd<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 U,
path: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn rmd<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 U, path: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Deletes the given directory.
Source§fn cwd<'life0, 'life1, 'async_trait, P>(
&'life0 self,
_user: &'life1 U,
path: P,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
fn cwd<'life0, 'life1, 'async_trait, P>( &'life0 self, _user: &'life1 U, path: P, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
Changes the working directory to the given path.
Source§fn enter(&mut self, _user_detail: &User) -> Result<(), Error>
fn enter(&mut self, _user_detail: &User) -> Result<(), Error>
Restrict the backend’s capabilities commensurate with the provided
UserDetail. Read moreSource§fn name(&self) -> &str
fn name(&self) -> &str
Implement to set the name of the storage back-end. By default it returns the type signature.
Source§fn supported_features(&self) -> u32
fn supported_features(&self) -> u32
Tells which optional features are supported by the storage back-end
Return a value with bits set according to the FEATURE_* constants.
Source§fn md5<'life0, 'life1, 'async_trait, P>(
&'life0 self,
user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
fn md5<'life0, 'life1, 'async_trait, P>( &'life0 self, user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<String, Error>> + Send + 'async_trait>>
Returns the MD5 hash for the given file. Read more
Source§fn list_fmt<'life0, 'life1, 'async_trait, P>(
&'life0 self,
user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Cursor<Vec<u8>>, Error>> + Send + 'async_trait>>
fn list_fmt<'life0, 'life1, 'async_trait, P>( &'life0 self, user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<Cursor<Vec<u8>>, Error>> + Send + 'async_trait>>
Returns some bytes that make up a directory listing that can immediately be sent to the client.
Source§fn list_vec<'life0, 'life1, 'async_trait, P>(
&'life0 self,
user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, Error>> + Send + 'async_trait>>
fn list_vec<'life0, 'life1, 'async_trait, P>( &'life0 self, user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, Error>> + Send + 'async_trait>>
Returns directory listing as a vec of strings used for multi line response in the control channel.
Source§fn nlst<'life0, 'life1, 'async_trait, P>(
&'life0 self,
user: &'life1 User,
path: P,
) -> Pin<Box<dyn Future<Output = Result<Cursor<Vec<u8>>, Error>> + Send + 'async_trait>>
fn nlst<'life0, 'life1, 'async_trait, P>( &'life0 self, user: &'life1 User, path: P, ) -> Pin<Box<dyn Future<Output = Result<Cursor<Vec<u8>>, Error>> + Send + 'async_trait>>
Returns some bytes that make up a NLST directory listing (only the basename) that can
immediately be sent to the client.
Source§fn get_into<'a, 'life0, 'life1, 'async_trait, P, W>(
&'life0 self,
user: &'life1 User,
path: P,
start_pos: u64,
output: &'a mut W,
) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>
fn get_into<'a, 'life0, 'life1, 'async_trait, P, W>( &'life0 self, user: &'life1 User, path: P, start_pos: u64, output: &'a mut W, ) -> Pin<Box<dyn Future<Output = Result<u64, Error>> + Send + 'async_trait>>
Gets the content of the given FTP file from offset start_pos file by copying it to the output writer.
The starting position will only be greater than zero if the storage back-end implementation
advertises to support partial reads through the supported_features method i.e. the result
from supported_features yield 1 if a logical and operation is applied with FEATURE_RESTART.
Auto Trait Implementations§
impl Freeze for MockForgeStorage
impl !RefUnwindSafe for MockForgeStorage
impl Send for MockForgeStorage
impl Sync for MockForgeStorage
impl Unpin for MockForgeStorage
impl UnsafeUnpin for MockForgeStorage
impl !UnwindSafe for MockForgeStorage
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more