AttachmentFormattingPlacement

Enum AttachmentFormattingPlacement 

Source
pub enum AttachmentFormattingPlacement {
    Inline,
    InlineWithHeader {
        header: &'static str,
    },
    Appendix {
        appendix_name: &'static str,
    },
    Opaque,
    Hidden,
}
Expand description

Specifies where an attachment should be placed when displayed in a report.

This enum allows attachments to indicate their preferred placement in error reports. Different placements are suitable for different types of content:

  • Inline: Short, contextual information that flows with the error message
  • InlineWithHeader: Multi-line content that needs a header for clarity
  • Appendix: Large or detailed content better suited to a separate section
  • Opaque: Content that shouldn’t be shown but should be counted
  • Hidden: Content that shouldn’t appear at all

The actual formatting system may or may not respect these preferences depending on the implementation.

§Examples

use rootcause_internals::handlers::AttachmentFormattingPlacement;

// Default is inline
let inline = AttachmentFormattingPlacement::default();
assert_eq!(inline, AttachmentFormattingPlacement::Inline);

// Attachment with header
let with_header = AttachmentFormattingPlacement::InlineWithHeader {
    header: "Request Details",
};

// Large content in appendix
let appendix = AttachmentFormattingPlacement::Appendix {
    appendix_name: "Full Stack Trace",
};

// Sensitive data that should be hidden
let hidden = AttachmentFormattingPlacement::Hidden;

Variants§

§

Inline

Display the attachment inline with the error message.

Suitable for short, contextual information that naturally flows with the error text. This is the default placement.

§

InlineWithHeader

Display the attachment inline but preceded by a header.

Useful for multi-line content that benefits from a descriptive header, such as configuration snippets or multi-field data structures.

Fields

§header: &'static str

The header text to display above the attachment

§

Appendix

Display the attachment in a separate appendix section.

Suitable for large or detailed content that would disrupt the flow of the main error message, such as full stack traces, large data dumps, or detailed diagnostic information.

Fields

§appendix_name: &'static str

The name of the appendix section for this attachment

§

Opaque

Don’t display the attachment, but count it in a summary.

The attachment won’t be shown directly, but may appear in a message like “3 additional opaque attachments”. Useful for numerous low-priority attachments that would clutter the output.

§

Hidden

Don’t display the attachment at all.

The attachment is completely hidden and won’t appear in any form. Useful for sensitive data that should be excluded from error reports, or for attachments meant only for programmatic access.

Trait Implementations§

Source§

impl Clone for AttachmentFormattingPlacement

Source§

fn clone(&self) -> AttachmentFormattingPlacement

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AttachmentFormattingPlacement

Source§

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

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

impl Default for AttachmentFormattingPlacement

Source§

fn default() -> AttachmentFormattingPlacement

Returns the “default value” for a type. Read more
Source§

impl Hash for AttachmentFormattingPlacement

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for AttachmentFormattingPlacement

Source§

fn eq(&self, other: &AttachmentFormattingPlacement) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for AttachmentFormattingPlacement

Source§

impl Eq for AttachmentFormattingPlacement

Source§

impl StructuralPartialEq for AttachmentFormattingPlacement

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> 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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.