diff options
Diffstat (limited to 'src/io.rs')
| -rw-r--r-- | src/io.rs | 14 |
1 files changed, 4 insertions, 10 deletions
| @@ -2,10 +2,7 @@ use crate::file::{ArchiveFileRead, ArchiveFileWrite}; | |||
| 2 | use crate::result::ArchiveResult; | 2 | use crate::result::ArchiveResult; |
| 3 | use std::io::{Read, Write}; | 3 | use std::io::{Read, Write}; |
| 4 | 4 | ||
| 5 | pub trait ArchiveRead | 5 | pub trait ArchiveRead: Sized { |
| 6 | where | ||
| 7 | Self: Sized, | ||
| 8 | { | ||
| 9 | type Reader: Read; | 6 | type Reader: Read; |
| 10 | type FileInfo; | 7 | type FileInfo; |
| 11 | type FileReader: ArchiveFileRead<Info = Self::FileInfo>; | 8 | type FileReader: ArchiveFileRead<Info = Self::FileInfo>; |
| @@ -14,18 +11,15 @@ where | |||
| 14 | 11 | ||
| 15 | fn files(&self) -> ArchiveResult<Vec<Self::FileInfo>>; | 12 | fn files(&self) -> ArchiveResult<Vec<Self::FileInfo>>; |
| 16 | 13 | ||
| 17 | fn file_reader(&self, name: &str) -> ArchiveResult<Self::FileReader>; | 14 | fn open_file(&self, name: &str) -> ArchiveResult<Self::FileReader>; |
| 18 | } | 15 | } |
| 19 | 16 | ||
| 20 | pub trait ArchiveWrite | 17 | pub trait ArchiveWrite: Sized { |
| 21 | where | ||
| 22 | Self: Sized, | ||
| 23 | { | ||
| 24 | type Writer: Write; | 18 | type Writer: Write; |
| 25 | type FileInfo; | 19 | type FileInfo; |
| 26 | type FileWriter: ArchiveFileWrite<Info = Self::FileInfo>; | 20 | type FileWriter: ArchiveFileWrite<Info = Self::FileInfo>; |
| 27 | 21 | ||
| 28 | fn new(write: Self::Writer) -> ArchiveResult<Self>; | 22 | fn new(write: Self::Writer) -> ArchiveResult<Self>; |
| 29 | 23 | ||
| 30 | fn file_writer(&self, name: &str) -> ArchiveResult<Self::FileWriter>; | 24 | fn create_file(&self, name: &str) -> ArchiveResult<Self::FileWriter>; |
| 31 | } | 25 | } |
