use cfg_if::cfg_if;
use crate::io;
use crate::path::Path;
use crate::task::blocking;
pub async fn metadata<P: AsRef<Path>>(path: P) -> io::Result<Metadata> {
let path = path.as_ref().to_owned();
blocking::spawn(move || std::fs::metadata(path)).await
}
cfg_if! {
if #[cfg(feature = "docs")] {
use std::time::SystemTime;
use crate::fs::{FileType, Permissions};
#[derive(Clone, Debug)]
pub struct Metadata {
_private: (),
}
impl Metadata {
pub fn file_type(&self) -> FileType {
unimplemented!()
}
pub fn is_dir(&self) -> bool {
unimplemented!()
}
pub fn is_file(&self) -> bool {
unimplemented!()
}
pub fn len(&self) -> u64 {
unimplemented!()
}
pub fn permissions(&self) -> Permissions {
unimplemented!()
}
pub fn modified(&self) -> io::Result<SystemTime> {
unimplemented!()
}
pub fn accessed(&self) -> io::Result<SystemTime> {
unimplemented!()
}
pub fn created(&self) -> io::Result<SystemTime> {
unimplemented!()
}
}
} else {
pub use std::fs::Metadata;
}
}