diff options
| author | Igor Tolmachev <me@igorek.dev> | 2024-07-20 16:52:39 +0900 |
|---|---|---|
| committer | Igor Tolmachev <me@igorek.dev> | 2024-07-20 16:52:39 +0900 |
| commit | 7bcdc3b4ca460aec2b98fb2dca6165788c562b05 (patch) | |
| tree | 63f9616fc1b7f9ca6e414a4d32910720e155690c /src/archive.rs | |
| parent | 5f4ceda88c7299deb317f8d22a99ab2521c5a380 (diff) | |
| download | archivator-7bcdc3b4ca460aec2b98fb2dca6165788c562b05.tar.gz archivator-7bcdc3b4ca460aec2b98fb2dca6165788c562b05.zip | |
Partial aes implementation and others improvements
Diffstat (limited to 'src/archive.rs')
| -rw-r--r-- | src/archive.rs | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/src/archive.rs b/src/archive.rs index d49689d..d03f143 100644 --- a/src/archive.rs +++ b/src/archive.rs | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | use crate::driver::{ArchiveRead, ArchiveWrite, Driver}; | 1 | use crate::driver::{ArchiveRead, ArchiveWrite, Driver}; |
| 2 | use crate::ArchiveResult; | ||
| 3 | use std::fs::File; | 2 | use std::fs::File; |
| 4 | use std::io::{Read, Write}; | 3 | use std::io::{Error as IoError, Read, Write}; |
| 5 | use std::path::Path; | 4 | use std::path::Path; |
| 6 | 5 | ||
| 7 | pub struct Archive<D: Driver> { | 6 | pub struct Archive<D: Driver> { |
| @@ -12,16 +11,17 @@ impl<D: ArchiveRead> Archive<D> | |||
| 12 | where | 11 | where |
| 13 | D::Io: std::io::Read, | 12 | D::Io: std::io::Read, |
| 14 | { | 13 | { |
| 15 | pub fn read(io: D::Io) -> ArchiveResult<Self, D::Error> { | 14 | pub fn read(io: D::Io) -> Result<Self, D::Error> { |
| 16 | Ok(Self { | 15 | Ok(Self { |
| 17 | driver: D::read(io)?, | 16 | driver: D::read(io)?, |
| 18 | }) | 17 | }) |
| 19 | } | 18 | } |
| 20 | 19 | ||
| 21 | #[inline] | 20 | #[inline] |
| 22 | pub fn read_from_file(path: impl AsRef<Path>) -> ArchiveResult<Self, D::Error> | 21 | pub fn read_from_file(path: impl AsRef<Path>) -> Result<Self, D::Error> |
| 23 | where | 22 | where |
| 24 | D: ArchiveRead<Io = File>, | 23 | D: ArchiveRead<Io = File>, |
| 24 | D::Error: From<IoError>, | ||
| 25 | { | 25 | { |
| 26 | Self::read(File::open(path)?) | 26 | Self::read(File::open(path)?) |
| 27 | } | 27 | } |
| @@ -35,23 +35,23 @@ where | |||
| 35 | self.files().len() | 35 | self.files().len() |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | pub fn get_file_index(&self, name: &str) -> ArchiveResult<usize, D::Error> { | 38 | pub fn get_file_index(&self, name: &str) -> Result<usize, D::Error> { |
| 39 | self.driver.get_file_index(name) | 39 | self.driver.get_file_index(name) |
| 40 | } | 40 | } |
| 41 | 41 | ||
| 42 | pub fn get_file_info_by_index(&self, index: usize) -> ArchiveResult<&D::FileInfo, D::Error> { | 42 | pub fn get_file_info_by_index(&self, index: usize) -> Result<&D::FileInfo, D::Error> { |
| 43 | self.driver.get_file_info(index) | 43 | self.driver.get_file_info(index) |
| 44 | } | 44 | } |
| 45 | 45 | ||
| 46 | #[inline] | 46 | #[inline] |
| 47 | pub fn get_file_info_by_name(&self, name: &str) -> ArchiveResult<&D::FileInfo, D::Error> { | 47 | pub fn get_file_info_by_name(&self, name: &str) -> Result<&D::FileInfo, D::Error> { |
| 48 | self.get_file_info_by_index(self.get_file_index(name)?) | 48 | self.get_file_info_by_index(self.get_file_index(name)?) |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | pub fn get_file_reader_by_index<'d>( | 51 | pub fn get_file_reader_by_index<'d>( |
| 52 | &'d mut self, | 52 | &'d mut self, |
| 53 | index: usize, | 53 | index: usize, |
| 54 | ) -> ArchiveResult<D::FileReader<'d>, D::Error> { | 54 | ) -> Result<D::FileReader<'d>, D::Error> { |
| 55 | self.driver.get_file_reader(index) | 55 | self.driver.get_file_reader(index) |
| 56 | } | 56 | } |
| 57 | 57 | ||
| @@ -59,7 +59,7 @@ where | |||
| 59 | pub fn get_file_reader_by_name<'d>( | 59 | pub fn get_file_reader_by_name<'d>( |
| 60 | &'d mut self, | 60 | &'d mut self, |
| 61 | name: &str, | 61 | name: &str, |
| 62 | ) -> ArchiveResult<D::FileReader<'d>, D::Error> { | 62 | ) -> Result<D::FileReader<'d>, D::Error> { |
| 63 | self.get_file_reader_by_index(self.get_file_index(name)?) | 63 | self.get_file_reader_by_index(self.get_file_index(name)?) |
| 64 | } | 64 | } |
| 65 | } | 65 | } |
