virtual_file_system/
macro.rs

1#[macro_export]
2macro_rules! mount {
3
4    ( $virtual_file_system:expr, $task:expr, &[ $( (
5        $path:expr, $kind:expr, $device:expr) ),* $(,)? ] ) => {
6
7    async || -> Result<(), $crate::exported_file_system::Error>
8    {
9        $(
10            let __device = Box::leak(Box::new($device));
11            $virtual_file_system.mount_static($task, $path, ItemStatic::$kind(__device)).await?;
12
13        )*
14
15        Ok(())
16    }()
17};
18
19}
20
21#[macro_export]
22macro_rules! mount_static {
23    ( $virtual_file_system:expr, $task:expr, &[ $( ( $path:expr, $kind:ident, $device:expr ) ),* $(,)? ] ) => {
24    async || -> $crate::Result<()>
25    {
26        $(
27            let _ = $virtual_file_system.remove($task, $path).await;
28            $virtual_file_system.mount_static($task, $path, $crate::ItemStatic::$kind(&$device)).await?;
29
30        )*
31
32        Ok(())
33    }()
34};
35
36}