pub enum ExtractError {
Io(String),
TarballTooLarge {
path: PathBuf,
actual: u64,
limit: u64,
},
TooManyEntries {
limit: u64,
},
EntryTooLarge {
path: String,
actual: u64,
limit: u64,
},
ExtractedTooLarge {
limit: u64,
},
UnsafePath {
path: String,
reason: &'static str,
},
DisallowedEntryType {
path: String,
kind: &'static str,
},
ManifestMismatch {
expected_id: String,
expected_version: Version,
got_id: String,
got_version: Version,
},
ManifestInvalid {
path: PathBuf,
reason: String,
},
BinaryMissing {
path: PathBuf,
},
JoinError(String),
}Expand description
Errors surfaced by the tarball extraction pipeline.
Variants§
Io(String)
IO read/write/rename/remove against the local filesystem failed.
TarballTooLarge
Tarball file size exceeds the configured max_tarball_bytes.
Fields
TooManyEntries
Number of entries (files + dirs) exceeds the configured max_entries.
EntryTooLarge
One entry’s header-declared size exceeds max_entry_bytes.
Fields
ExtractedTooLarge
Sum of all entry sizes exceeds max_extracted_bytes.
UnsafePath
Entry path was absolute, contained .., was Windows-prefixed, or
included NUL bytes.
Fields
DisallowedEntryType
Entry type was not in the allowed set (regular file or directory).
Fields
ManifestMismatch
Manifest extracted from the tarball does not match the manifest the resolver advertised. The mismatch implies tarball/registry tampering or a publish convention violation; staging is cleaned up.
Fields
ManifestInvalid
Manifest file at the given path could not be parsed as a valid
PluginManifest.
Fields
BinaryMissing
bin/<plugin_id> was not present after extraction. Indicates a
publish convention violation upstream.
JoinError(String)
tokio::task::spawn_blocking join failure (panic in the sync extract
task, or runtime shutdown mid-extract).
Trait Implementations§
Source§impl Debug for ExtractError
impl Debug for ExtractError
Source§impl Display for ExtractError
impl Display for ExtractError
Source§impl Error for ExtractError
impl Error for ExtractError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Auto Trait Implementations§
impl Freeze for ExtractError
impl RefUnwindSafe for ExtractError
impl Send for ExtractError
impl Sync for ExtractError
impl Unpin for ExtractError
impl UnsafeUnpin for ExtractError
impl UnwindSafe for ExtractError
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.