[−][src]Struct libmtp_rs::storage::Storage
Storage descriptor of some MTP device, note that updating the storage and keeping a old copy of this struct is impossible.
Implementations
impl<'a> Storage<'a>
[src]
pub fn id(&self) -> u32
[src]
Retrieves the id of this storage.
pub fn storage_type(&self) -> StorageType
[src]
Returns the storage type
pub fn filesystem_type(&self) -> FilesystemType
[src]
Returns the file system type
pub fn access_capability(&self) -> AccessCapability
[src]
Returns the access capability
pub fn maximum_capacity(&self) -> u64
[src]
Returns the maximum capacity
pub fn free_space_in_bytes(&self) -> u64
[src]
Returns the free space in bytes
pub fn free_space_in_objects(&self) -> u64
[src]
Returns the free space in objects
pub fn description(&self) -> Option<&str>
[src]
Returns the storage description
pub fn volume_identifier(&self) -> Option<&str>
[src]
Returns the volume identifier
pub fn format_storage(&self) -> Result<()>
[src]
Formats this storage (if its device supports the operation).
WARNING: This WILL DELETE ALL DATA from the device, make sure you've got confirmation from the user before calling this function.
pub fn files_and_folders(&self, parent: Parent) -> Vec<File<'a>>
[src]
Retrieves the contents of a certain folder (parent
) in this storage, the result contains
both files and folders, note that this request will always perform I/O with the device.
pub fn folder_list(&self) -> Option<Folder<'a>>
[src]
Optionally returns a Folder
, with this struct you can build a tree
structure (see Folder
for more info)
pub fn create_folder<'b>(
&self,
name: &'b str,
parent: Parent
) -> Result<(u32, Cow<'b, str>)>
[src]
&self,
name: &'b str,
parent: Parent
) -> Result<(u32, Cow<'b, str>)>
Tries to create a new folder in this storage for the relevant MtpDevice
, returns the id
of the new folder and its name, note that the name may be different due to device file
system restrictions.
pub fn get_file_to_path(
&self,
file: impl AsObjectId,
path: impl AsRef<Path>
) -> Result<()>
[src]
&self,
file: impl AsObjectId,
path: impl AsRef<Path>
) -> Result<()>
Retrieves a file from the device storage to a local file identified by a filename. Note
that get_file_to_path
on Storage
and StoragePool
are semantically the same because
objects have unique ids across all the device.
pub fn get_file_to_path_with_callback<C>(
&self,
file: impl AsObjectId,
path: impl AsRef<Path>,
callback: C
) -> Result<()> where
C: FnMut(u64, u64) -> CallbackReturn,
[src]
&self,
file: impl AsObjectId,
path: impl AsRef<Path>,
callback: C
) -> Result<()> where
C: FnMut(u64, u64) -> CallbackReturn,
Retrieves a file from the device storage to a local file identified by a filename. Note
that get_file_to_path
on Storage
and StoragePool
are semantically the same because
objects have unique ids across all the device.
The callback
parameter is a progress function with the following signature (sent_bytes: u64, total_bytes: u64) -> CallbackReturn
, this way you can check the progress and if you
want to cancel operation you just return CallbackReturn::Cancel
.
pub fn get_file_to_handler<H>(
&self,
file: impl AsObjectId,
handler: H
) -> Result<()> where
H: FnMut(&[u8]) -> HandlerReturn,
[src]
&self,
file: impl AsObjectId,
handler: H
) -> Result<()> where
H: FnMut(&[u8]) -> HandlerReturn,
Retrieves a file from the device storage and calls handler with chunks of data. Note
that get_file_to_descriptor
on Storage
and StoragePool
are semantically the same because
objects have unique ids across all the device.
The handler
parameter is a function that receives the chunks of data with the following
signature (data: &[u8]) -> HandlerReturn
, you should return HandlerReturn::Ok(readed_bytes)
if there weren't errors with the amount of bytes you read from data
.
pub fn get_file_to_handler_with_callback<H, C>(
&self,
file: impl AsObjectId,
handler: H,
callback: C
) -> Result<()> where
H: FnMut(&[u8]) -> HandlerReturn,
C: FnMut(u64, u64) -> CallbackReturn,
[src]
&self,
file: impl AsObjectId,
handler: H,
callback: C
) -> Result<()> where
H: FnMut(&[u8]) -> HandlerReturn,
C: FnMut(u64, u64) -> CallbackReturn,
Retrieves a file from the device storage and calls handler with chunks of data. Note
that get_file_to_descriptor
on Storage
and StoragePool
are semantically the same because
objects have unique ids across all the device.
The handler
parameter is a function that receives the chunks of data with the following
signature (data: &[u8]) -> HandlerReturn
, you should return HandlerReturn::Ok(readed_bytes)
if there weren't errors with the amount of bytes you read from data
.
The callback
parameter is a progress function with the following signature (sent_bytes: u64, total_bytes: u64) -> CallbackReturn
, this way you can check the progress and if you
want to cancel operation you just return CallbackReturn::Cancel
.
pub fn send_file_from_path<C>(
&self,
path: impl AsRef<Path>,
parent: Parent,
metadata: FileMetadata<'_>
) -> Result<File<'a>> where
C: FnMut(u64, u64) -> CallbackReturn,
[src]
&self,
path: impl AsRef<Path>,
parent: Parent,
metadata: FileMetadata<'_>
) -> Result<File<'a>> where
C: FnMut(u64, u64) -> CallbackReturn,
Sends a local file to the MTP device who this storage belongs to.
pub fn send_file_from_path_with_callback<C>(
&self,
path: impl AsRef<Path>,
parent: Parent,
metadata: FileMetadata<'_>,
callback: C
) -> Result<File<'a>> where
C: FnMut(u64, u64) -> CallbackReturn,
[src]
&self,
path: impl AsRef<Path>,
parent: Parent,
metadata: FileMetadata<'_>,
callback: C
) -> Result<File<'a>> where
C: FnMut(u64, u64) -> CallbackReturn,
Sends a local file to the MTP device who this storage belongs to.
The callback
parameter is a progress function with the following signature (sent_bytes: u64, total_bytes: u64) -> CallbackReturn
, this way you can check the progress and if you
want to cancel operation you just return CallbackReturn::Cancel
.
pub fn send_file_from_handler<H>(
&self,
handler: H,
parent: Parent,
metadata: FileMetadata<'_>
) -> Result<File<'a>> where
H: FnMut(&mut [u8]) -> HandlerReturn,
[src]
&self,
handler: H,
parent: Parent,
metadata: FileMetadata<'_>
) -> Result<File<'a>> where
H: FnMut(&mut [u8]) -> HandlerReturn,
Sends a bunch of data to the MTP device who this storage belongs to.
The handler
parameter is a function that gives you a chunk to write data with the
following signature (data: &mut [u8]) -> HandlerReturn
, you should return
HandlerReturn::Ok(written_bytes)
if there weren't errors with the amount of bytes you
wrote to data
.
pub fn send_file_from_handler_with_callback<H, C>(
&self,
handler: H,
parent: Parent,
metadata: FileMetadata<'_>,
callback: C
) -> Result<File<'a>> where
H: FnMut(&mut [u8]) -> HandlerReturn,
C: FnMut(u64, u64) -> CallbackReturn,
[src]
&self,
handler: H,
parent: Parent,
metadata: FileMetadata<'_>,
callback: C
) -> Result<File<'a>> where
H: FnMut(&mut [u8]) -> HandlerReturn,
C: FnMut(u64, u64) -> CallbackReturn,
Sends a bunch of data to the MTP device who this storage belongs to.
The handler
parameter is a function that gives you a chunk to write data with the
following signature (data: &mut [u8]) -> HandlerReturn
, you should return
HandlerReturn::Ok(written_bytes)
if there weren't errors with the amount of bytes you
wrote to data
.
The callback
parameter is a progress function with the following signature (sent_bytes: u64, total_bytes: u64) -> CallbackReturn
, this way you can check the progress and if you
want to cancel operation you just return CallbackReturn::Cancel
.
Trait Implementations
Auto Trait Implementations
impl<'a> RefUnwindSafe for Storage<'a>
impl<'a> !Send for Storage<'a>
impl<'a> !Sync for Storage<'a>
impl<'a> Unpin for Storage<'a>
impl<'a> UnwindSafe for Storage<'a>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,