Error

Enum Error 

Source
#[non_exhaustive]
pub enum Error {
Show 45 variants AppPartitionNotFound, Cancelled, ChipDetectError(String), ChipMismatch(String, String), ChipNotProvided, CorruptData(usize, usize), DigestMismatch(Vec<u8>, Vec<u8>), ElfNotRamLoadable, ElfTooBig(u32, u32), FlashConnect, IncorrectDigestLength(usize), IncorrectResponse, InvalidBootloader, InvalidBootloaderPath, InvalidFlashSize(String), InvalidPartitionTablePath, NoSerial, ReadMoreThanExpected, StubRequired, SerialNotFound(String), SerialNotSelected, UnsupportedFeature { chip: Chip, feature: String, }, UnsupportedFlash(u8), UnsupportedFlashFrequency { chip: Chip, frequency: FlashFrequency, }, UnsupportedChipRevision { major: u16, minor: u16, found_major: u16, found_minor: u16, }, ParseChipRevError { chip_rev: String, }, Connection(Box<dyn Error + Send + Sync>), Flashing(Box<dyn Error + Send + Sync>), InvalidElf(Box<dyn Error + Send + Sync>), InvalidAppDescriptor(Box<dyn Error + Send + Sync>), RomError(Box<dyn Error + Send + Sync>), MissingPartition(Box<dyn Error + Send + Sync>), MissingPartitionTable(Box<dyn Error + Send + Sync>), VerifyFailed, TryFromSlice(Box<dyn Error + Send + Sync>), ParseIntError(Box<dyn Error + Send + Sync>), Utf8Error(Box<dyn Error + Send + Sync>), FileOpenError(String, Error), Partition(Box<dyn Error + Send + Sync>), InvalidResponse(String), InvalidEraseRegionArgument { address: u32, size: u32, }, FirmwareChipMismatch { elf: String, detected: Chip, }, PartitionTableDoesNotFit(FlashSize), AppDescriptorNotPresent(String), MisplacedKey(String),
}
Expand description

All possible errors returned by espflash

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

AppPartitionNotFound

App partition not found

§

Cancelled

Operation was cancelled by the user

§

ChipDetectError(String)

Unable to detect chip type

§

ChipMismatch(String, String)

The specified chip does not match the detected chip

§

ChipNotProvided

Chip argument not provided, this is required when using the --before no-reset-no-sync option

§

CorruptData(usize, usize)

Corrupted data received

§

DigestMismatch(Vec<u8>, Vec<u8>)

The calculated and received MD5 digests do not match

§

ElfNotRamLoadable

Supplied ELF image can not be run from RAM, as it includes segments mapped to ROM addresses

§

ElfTooBig(u32, u32)

The supplied ELF image is too large for the configured app partition

§

FlashConnect

Failed to connect to on-device flash

§

IncorrectDigestLength(usize)

Received MD5 digest has the incorrect length

§

IncorrectResponse

Incorrect response from the stub/ROM loader

§

InvalidBootloader

The provided bootloader binary is invalid

§

InvalidBootloaderPath

Specified bootloader path is not a .bin file

§

InvalidFlashSize(String)

Invalid flash size provided

§

InvalidPartitionTablePath

Specified partition table path is not a .bin or .csv file

§

NoSerial

No serial ports could be detected

§

ReadMoreThanExpected

Read more bytes than expected

§

StubRequired

Command requires using the RAM stub

§

SerialNotFound(String)

Serial port could not be found

§

SerialNotSelected

No serial port argument was provided

§

UnsupportedFeature

Chip does not support a specific feature

Fields

§chip: Chip

Chip

§feature: String

Unsupported feature

§

UnsupportedFlash(u8)

Unsupported flash chip

§

UnsupportedFlashFrequency

Flash frequency not supported by chip

Fields

§chip: Chip

Chip

§frequency: FlashFrequency

Flash frequency

§

UnsupportedChipRevision

Unsupported chip revision for connected chip

Fields

§major: u16

Minimum supported major version

§minor: u16

Minimum supported minor version

§found_major: u16

Detected major version

§found_minor: u16

Detected minor version

§

ParseChipRevError

Failed to parse chip revision due to invalid format

Fields

§chip_rev: String

Chip revision

§

Connection(Box<dyn Error + Send + Sync>)

Error while connecting to device

§

Flashing(Box<dyn Error + Send + Sync>)

Communication error while flashing device

§

InvalidElf(Box<dyn Error + Send + Sync>)

Supplied ELF image is not valid

§

InvalidAppDescriptor(Box<dyn Error + Send + Sync>)

Supplied ELF image contains an invalid application descriptor

§

RomError(Box<dyn Error + Send + Sync>)

Available on crate feature serialport only.

The bootloader returned an error

§

MissingPartition(Box<dyn Error + Send + Sync>)

The selected partition does not exist in the partition table

§

MissingPartitionTable(Box<dyn Error + Send + Sync>)

The partition table is missing or invalid

§

VerifyFailed

Verification of flash content failed

§

TryFromSlice(Box<dyn Error + Send + Sync>)

Error while trying to convert from slice

§

ParseIntError(Box<dyn Error + Send + Sync>)

Error while trying to parse int from text

§

Utf8Error(Box<dyn Error + Send + Sync>)

Error while trying to parse UTF-8 from bytes

§

FileOpenError(String, Error)

Failed to open file

§

Partition(Box<dyn Error + Send + Sync>)

Failed to parse partition table

§

InvalidResponse(String)

Invalid response from target device

§

InvalidEraseRegionArgument

An invalid address and/or size argument was provided

Fields

§address: u32

Address argument

§size: u32

Size argument

§

FirmwareChipMismatch

Firmware was built for a chip other than what was detected

Fields

§elf: String

Chip which the ELF file was built for

§detected: Chip

Chip which was detected

§

PartitionTableDoesNotFit(FlashSize)

The partition table does not fit into the flash

§

AppDescriptorNotPresent(String)

App descriptor not present in the binary

§

MisplacedKey(String)

Key is not in the expected section

Trait Implementations§

Source§

impl Debug for Error

Source§

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

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

impl Diagnostic for Error

Source§

fn code(&self) -> Option<Box<dyn Display + '_>>

Unique diagnostic code that can be used to look up more information about this Diagnostic. Ideally also globally unique, and documented in the toplevel crate’s documentation for easy searching. Rust path format (foo::bar::baz) is recommended, but more classic codes like E0123 or enums will work just fine.
Source§

fn help(&self) -> Option<Box<dyn Display + '_>>

Additional help text related to this Diagnostic. Do you have any advice for the poor soul who’s just run into this issue?
Source§

fn url(&self) -> Option<Box<dyn Display + '_>>

URL to visit for a more detailed explanation/help about this Diagnostic.
Source§

fn severity(&self) -> Option<Severity>

Diagnostic severity. This may be used by ReportHandlers to change the display format of this diagnostic. Read more
Source§

fn source_code(&self) -> Option<&dyn SourceCode>

Source code to apply this Diagnostic’s Diagnostic::labels to.
Source§

fn labels(&self) -> Option<Box<dyn Iterator<Item = LabeledSpan> + '_>>

Labels to apply to this Diagnostic’s Diagnostic::source_code
Source§

fn related<'a>( &'a self, ) -> Option<Box<dyn Iterator<Item = &'a dyn Diagnostic> + 'a>>

Additional related Diagnostics.
Source§

fn diagnostic_source(&self) -> Option<&dyn Diagnostic>

The cause of the error.
Source§

impl Display for Error

Source§

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

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

impl Error for Error

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 Error

Available on crate feature serialport only.
Source§

fn from(err: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for Error

Available on crate feature serialport only.
Source§

fn from(err: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for Error

Source§

fn from(err: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for Error

Source§

fn from(err: Error) -> Self

Converts to this type from the input type.
Source§

impl From<ParseIntError> for Error

Source§

fn from(err: ParseIntError) -> Self

Converts to this type from the input type.
Source§

impl From<SlipError> for Error

Available on crate feature serialport only.
Source§

fn from(err: SlipError) -> Self

Converts to this type from the input type.
Source§

impl From<TryFromSliceError> for Error

Source§

fn from(err: TryFromSliceError) -> Self

Converts to this type from the input type.
Source§

impl From<Utf8Error> for Error

Source§

fn from(err: Utf8Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl Freeze for Error

§

impl !RefUnwindSafe for Error

§

impl Send for Error

§

impl Sync for Error

§

impl Unpin for Error

§

impl !UnwindSafe for Error

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> 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> Conv for T

Source§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Source§

impl<T> FmtForward for T

Source§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Source§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Source§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Source§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Source§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Source§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Source§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Source§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Source§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Pipe for T
where T: ?Sized,

Source§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Source§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Source§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Source§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Source§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Source§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Source§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Source§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Tap for T

Source§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Source§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Source§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Source§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Source§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Source§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Source§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Source§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Source§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Source§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Source§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Source§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Source§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> TryConv for T

Source§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.