io_trait/
file.rs

1use core::fmt;
2use std::{
3    fs,
4    io::{self, Read, Seek, Write},
5};
6
7use crate::Metadata;
8
9pub trait File: Read + Write + Seek + fmt::Debug {
10    type Metadata: Metadata;
11    fn metadata(&self) -> io::Result<Self::Metadata>;
12}
13
14impl File for fs::File {
15    type Metadata = fs::Metadata;
16    fn metadata(&self) -> io::Result<Self::Metadata> {
17        fs::File::metadata(self)
18    }
19}