pub enum ProfileError {
Unknown {
reason: String,
backtrace: BackTrace,
},
NotRegistered {
backtrace: BackTrace,
},
NotMeasured {
backtrace: BackTrace,
},
Launch(LaunchError),
Server(Box<ServerError>),
}Expand description
An error during profiling.
Variants§
Unknown
An unknown error happened during profiling
NotRegistered
No profiling was registered
NotMeasured
The profiled window resolved no device timing.
Distinct from a zero duration, which is a measurement that came back instant. This is the absence of one: nothing the window enqueued was timestamped, so the backend has nothing to report. A caller that only wants a number can treat it as zero; a caller comparing candidates must not, because an absence that reads as zero is the fastest result there is and wins every comparison it enters.
Launch(LaunchError)
A launch error happened during profiling
Server(Box<ServerError>)
An execution error happened during profiling
Trait Implementations§
Source§impl Clone for ProfileError
impl Clone for ProfileError
Source§impl Debug for ProfileError
impl Debug for ProfileError
Source§impl<'de> Deserialize<'de> for ProfileError
impl<'de> Deserialize<'de> for ProfileError
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for ProfileError
impl Display for ProfileError
Source§impl Error for ProfileError
impl Error for ProfileError
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()
Source§impl From<&ServerError> for ProfileError
A failure during a profiling window invalidates the measurement, whatever
the failure was. Every backend answers a launch, write or replay failure
this way, so the conversion lives here rather than five times over.
impl From<&ServerError> for ProfileError
A failure during a profiling window invalidates the measurement, whatever the failure was. Every backend answers a launch, write or replay failure this way, so the conversion lives here rather than five times over.
Source§fn from(error: &ServerError) -> Self
fn from(error: &ServerError) -> Self
Source§impl From<Box<ServerError>> for ProfileError
impl From<Box<ServerError>> for ProfileError
Source§fn from(source: Box<ServerError>) -> Self
fn from(source: Box<ServerError>) -> Self
Source§impl From<LaunchError> for ProfileError
impl From<LaunchError> for ProfileError
Source§fn from(source: LaunchError) -> Self
fn from(source: LaunchError) -> Self
Auto Trait Implementations§
impl Freeze for ProfileError
impl RefUnwindSafe for ProfileError
impl Send for ProfileError
impl Sync for ProfileError
impl Unpin for ProfileError
impl UnsafeUnpin for ProfileError
impl UnwindSafe for ProfileError
Blanket Implementations§
impl<T> AnyError for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
impl<T> ErasedDestructor for Twhere
T: 'static,
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more