arch_pkg_db/text/archive/
uncompressed.rs1use super::{mime::SupportedUncompressedArchiveType, tar::LoadTarError};
2use crate::TextCollection;
3use derive_more::{Display, Error};
4
5#[derive(Debug, Display, Error)]
7pub enum LoadUncompressedArchiveError {
8 #[display("Cannot detect mime type")]
9 GetMime,
10 #[display("Mime type not supported: {_0}")]
11 UnsupportedMimeType(#[error(not(source))] &'static str),
12 Tar(LoadTarError),
13}
14
15impl TextCollection {
16 pub(super) fn extend_from_uncompressed_archive(
19 &mut self,
20 bytes: &[u8],
21 ) -> Result<(), LoadUncompressedArchiveError> {
22 match SupportedUncompressedArchiveType::check(bytes) {
23 Ok(SupportedUncompressedArchiveType::Tar) => self
24 .extend_from_tar(bytes)
25 .map_err(LoadUncompressedArchiveError::Tar),
26 Err(Some(mime)) => Err(LoadUncompressedArchiveError::UnsupportedMimeType(mime)),
27 Err(None) => Err(LoadUncompressedArchiveError::GetMime),
28 }
29 }
30}