Expand description
A filesystem-backed virtual MTP device, for testing without hardware. Exempt from SemVer.
Needs the virtual-device feature. This is test support: the config fields and the hooks here
(fault injection, watcher control, stale-handle simulation) can change in any release, so treat
them like your test fixtures and expect to adjust when you bump mtp-rs.
Open a device directly with MtpDeviceBuilder::open_virtual,
or call register_virtual_device so that MtpDevice::list_devices
and the open_by_* methods find it like a plugged-in device.
Build a config by stating the fields you care about and spreading the rest:
use mtp_rs::virtual_device::{VirtualDeviceConfig, VirtualStorageConfig};
use std::path::PathBuf;
let config = VirtualDeviceConfig {
storages: vec![VirtualStorageConfig {
description: "Internal Storage".into(),
capacity: 1024 * 1024,
backing_dir: PathBuf::from("/tmp/mtp-test"),
read_only: false,
}],
..Default::default()
};Re-exportsยง
pub use crate::transport::virtual_device::config::VirtualDeviceConfig;pub use crate::transport::virtual_device::config::VirtualStorageConfig;pub use crate::transport::virtual_device::registry::clear_dropped_paths;pub use crate::transport::virtual_device::registry::clear_object_info_errors;pub use crate::transport::virtual_device::registry::dropped_paths_since_pause;pub use crate::transport::virtual_device::registry::force_cancel_wedge;pub use crate::transport::virtual_device::registry::force_object_info_error;pub use crate::transport::virtual_device::registry::force_operation_wedge;pub use crate::transport::virtual_device::registry::force_partial_read_caps;pub use crate::transport::virtual_device::registry::pause_watcher;pub use crate::transport::virtual_device::registry::register_virtual_device;pub use crate::transport::virtual_device::registry::rekey_virtual_object;pub use crate::transport::virtual_device::registry::rescan_virtual_device;pub use crate::transport::virtual_device::registry::unregister_virtual_device;pub use crate::transport::virtual_device::registry::was_path_dropped;pub use crate::transport::virtual_device::registry::WatcherGuard;pub use crate::transport::virtual_device::RescanSummary;pub use crate::transport::virtual_device::DROPPED_PATHS_CAP;