summaryrefslogtreecommitdiffstats
path: root/src/crossdev.rs
blob: 20dbd95712369f7ca376422162204a2db4f19cf2 (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)
}