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}