Skip to main content

StateError

Enum StateError 

Source
pub enum StateError {
    Open(Error),
    Save(Error),
    Decode(Error),
    Encode(Error),
    FileChanged {
        local_file_id: FileId,
        local_file_size: u64,
        remote_file_id: FileId,
        remote_file_size: u64,
    },
    Truncated {
        actual_size: u64,
        recorded_size: u64,
    },
    NotResumable(UrlInfo, Response),
    NoUrl(PathBuf),
    NotAPartFile(PathBuf),
}
Expand description

Errors that can occur when an explicit resume cannot continue an interrupted download.

These are surfaced through crate::Event::ResumeError so the caller is notified instead of silently falling back to a full re-download.

Variants§

§

Open(Error)

Failed to open or read the .fd state file from disk.

This usually means the file is missing or unreadable (permission error, removed by another process, etc.).

§

Save(Error)

Failed to persist the .fd state file to disk.

The state was computed but could not be written (disk full, permission error, etc.).

§

Decode(Error)

Failed to deserialize the .fd state file.

The file was read but is not valid TOML, or its schema no longer matches the current DownloadStateInner definition.

§

Encode(Error)

Failed to serialize the download state into the .fd state file.

The state could not be encoded as TOML (e.g. a field holds a value that has no valid TOML representation).

§

FileChanged

The remote file changed (size / etag / last-modified mismatch), so resuming would corrupt the output.

Fields

§local_file_id: FileId
§local_file_size: u64
§remote_file_id: FileId
§remote_file_size: u64
§

Truncated

The .part file is shorter than the progress recorded in the .fd, so the recorded ranges no longer describe bytes that exist on disk.

Continuing would let the sink extend the file with zeros across the missing span and never fetch it, silently corrupting the output.

Fields

§actual_size: u64
§recorded_size: u64
§

NotResumable(UrlInfo, Response)

The server does not support resumable (range) downloads.

§

NoUrl(PathBuf)

No URL is available to resume the download.

resume was called with url = None and the persisted .fd state file carries no resolvable initial URL (it was missing, or written by an older build that did not store one). A URL is required to re-resolve the resource, so the call reports this error instead of silently falling back to a full re-download.

§

NotAPartFile(PathBuf)

peek_resume 收到的 tmp_path 不是 .part 文件。

peek_resume 需要的是 .part 临时文件路径,其同名 .fd 才是保存的状态; 传入其他扩展名的路径属于参数错误,而非文件读取失败。

Trait Implementations§

Source§

impl Debug for StateError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for StateError

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for StateError

Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0:

use the Display impl or to_string()

1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for StateError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for StateError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AnyError for T
where T: Error + Send + Sync + Unpin + 'static,

Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more