#[non_exhaustive]pub struct FailureDumpEntry {
pub key: Option<RenderedValue>,
pub key_hex: String,
pub value: Option<RenderedValue>,
pub value_hex: String,
pub payload: Option<RenderedValue>,
}Expand description
One (key, value) pair from a hash map. Both sides are rendered via
BTF when key/value type ids are available; a None rendering
preserves the raw bytes.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.key: Option<RenderedValue>Rendered key. None when no BTF type is available for the key.
key_hex: StringHex-encoded raw key bytes. Kept alongside key so the operator
can correlate rendered output with the wire format.
value: Option<RenderedValue>Rendered value. None when no BTF type is available.
value_hex: StringHex-encoded raw value bytes.
payload: Option<RenderedValue>Typed render of the per-entry sdt_alloc payload, when the value
carries a struct sdt_data __arena * field that points into a
captured arena page and a payload type id was discovered for
the matching allocator. None when the entry carries no arena
pointer to chase, no allocator metadata was found, the payload
type was ambiguous, or the arena read failed.
value already renders the surface struct (e.g.
scx_task_map_val { tid, tptr, data: 0x100000... -> sdt_data { tid: { idx, genn } } }), but sdt_data.payload[] is a flex
array — BTF reports its size as 0, so the per-task struct that
actually lives in the payload bytes never decodes through the
surface render. This field carries that decoded payload
alongside the surface struct so the operator sees both views
at once.
Trait Implementations§
Source§impl Clone for FailureDumpEntry
impl Clone for FailureDumpEntry
Source§fn clone(&self) -> FailureDumpEntry
fn clone(&self) -> FailureDumpEntry
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FailureDumpEntry
impl Debug for FailureDumpEntry
Source§impl Default for FailureDumpEntry
impl Default for FailureDumpEntry
Source§fn default() -> FailureDumpEntry
fn default() -> FailureDumpEntry
Source§impl<'de> Deserialize<'de> for FailureDumpEntry
impl<'de> Deserialize<'de> for FailureDumpEntry
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 FailureDumpEntry
impl Display for FailureDumpEntry
Source§fn fmt(&self, f: &mut Formatter<'_>) -> Result
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Render an entry using the indent-based format:
entry: key=<rendered key>
value: <rendered value>
.data TypeName:
field=val field=val field=valentry: is a label and key= is a field assignment; the
= follows the field-assignment convention used elsewhere
in the dump output. value: is also a label introducing
the rendered value (which carries its own TypeName{...}
or breadcrumb form). The optional payload follows the
breadcrumb pattern: .data <rendered> where the value’s
own Type breadcrumb completes the line.
The renderer is invoked with depth = 1 for the value and
payload positions so any multi-line struct / array body
indents one level deeper than the entry’s own prefix.
Auto Trait Implementations§
impl Freeze for FailureDumpEntry
impl RefUnwindSafe for FailureDumpEntry
impl Send for FailureDumpEntry
impl Sync for FailureDumpEntry
impl Unpin for FailureDumpEntry
impl UnwindSafe for FailureDumpEntry
Blanket Implementations§
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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