summaryrefslogtreecommitdiffstats
path: root/src/crossdev.rs
blob: 0f68a09b2a40a3b2d4775a1c2b601e59653fbda9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use std::{io, path::Path};

#[cfg(unix)]
pub fn init(path: &Path) -> io::Result<u64> {
    use std::os::unix::fs::MetadataExt;

    path.metadata().map(|m| m.dev())
}

#[cfg(unix)]
pub fn is_same_device(device_id: u64, meta: &std::fs::Metadata) -> bool {
    use std::os::unix::fs::MetadataExt;

    meta.dev() == device_id
}

#[cfg(not(unix))]
pub fn is_same_device(device_id: u64, meta: &std::fs::Metadata) -> bool {
    true
}

#[cfg(not(unix))]
pub fn init(path: &Path) -> io::Result<u64> {
    Ok(0)
}