1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
use core::fmt;
use std::{
    fs,
    io::{self, Read, Seek, Write},
};

use crate::Metadata;

pub trait File: Read + Write + Seek + fmt::Debug {
    type Metadata: Metadata;
    fn metadata(&self) -> io::Result<Self::Metadata>;
}

impl File for fs::File {
    type Metadata = fs::Metadata;
    fn metadata(&self) -> io::Result<Self::Metadata> {
        fs::File::metadata(self)
    }
}