anyhow_std/fs/
metadata.rs1use anyhow::Context;
2use std::ops::Deref;
3use std::path::PathBuf;
4use std::time::SystemTime;
5
6#[derive(Debug, derive_more::From, derive_more::Into)]
8pub struct Metadata {
9 md: std::fs::Metadata,
10 path: PathBuf,
11}
12
13impl Metadata {
14 pub fn modified(&self) -> anyhow::Result<SystemTime> {
16 self.md
17 .modified()
18 .with_context(|| format!("while processing path {:?}", self.path.display()))
19 }
20
21 pub fn accessed(&self) -> anyhow::Result<SystemTime> {
23 self.md
24 .accessed()
25 .with_context(|| format!("while processing path {:?}", self.path.display()))
26 }
27
28 pub fn created(&self) -> anyhow::Result<SystemTime> {
30 self.md
31 .created()
32 .with_context(|| format!("while processing path {:?}", self.path.display()))
33 }
34}
35
36impl Deref for Metadata {
37 type Target = std::fs::Metadata;
38
39 fn deref(&self) -> &Self::Target {
40 &self.md
41 }
42}