Skip to main content

OperationCategory

Enum OperationCategory 

Source
pub enum OperationCategory {
    Configuration,
    Deployment,
    Monitoring,
    Analysis,
    Response,
    Audit,
    System,
    IO,
    Deception,
    Detection,
    Containment,
}
Expand description

Operation category for contextualizing errors without revealing architecture.

Categories are intentionally broad to provide SOC operators with sufficient signal for triage and response while preventing attackers from mapping internal system topology through error analysis.

§Design Principle

Each category represents a functional domain rather than a specific component. This prevents errors from revealing:

  • Service boundaries
  • Technology stack details
  • Deployment architecture
  • Internal naming conventions

§Copy Semantics Exception

This is the only type in this module that implements Copy. Rationale:

  • Small fieldless enum (single byte in practice)
  • No owned or sensitive data
  • Copying is cheaper than reference passing (no indirection)
  • Frequently passed by value in error construction

§Deception Support

Honeypot-specific categories (Deception, Detection, Containment) have deceptive display names that mask defensive operations as routine work.

Variants§

§

Configuration

Configuration parsing, validation, or application

§

Deployment

Artifact deployment, management, or versioning

§

Monitoring

Event collection, monitoring, or observability

§

Analysis

Rule evaluation, scoring, or decision logic

§

Response

Action execution, remediation, or enforcement

§

Audit

Logging, audit trail, or compliance recording

§

System

System-level operations (process, memory, OS interaction)

§

IO

File system or network I/O operations

§

Deception

Honeypot luring, facade maintenance, or attacker engagement

§

Detection

Intrusion detection, anomaly identification, or threat recognition

§

Containment

Attack isolation, sandboxing, or containment operations

Implementations§

Source§

impl OperationCategory

Source

pub const fn display_name(&self) -> &'static str

Get the authentic display name for this category.

§Returns

Static string describing the operation domain. No allocation, no Unicode edge cases. Safe for all internal logging and SOC dashboards.

§Performance

Const function compiled to direct pointer return. Zero runtime cost.

Source

pub const fn deceptive_name(&self) -> &'static str

Get deceptive display name for external contexts.

§Returns

Static string that masks honeypot-specific operations as routine work:

  • Deception → “Routine Operation”
  • Detection → “Routine Operation”
  • Containment → “Routine Operation”
  • All others → Same as display_name()
§Use Case

For external error messages where revealing defensive operations would compromise the honeypot’s effectiveness. Generic labels prevent attackers from identifying which interactions triggered defensive responses.

§Performance

Const function, zero runtime cost. Compiled to direct pointer return.

Trait Implementations§

Source§

impl Clone for OperationCategory

Source§

fn clone(&self) -> OperationCategory

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 OperationCategory

Source§

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

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

impl Hash for OperationCategory

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 OperationCategory

Source§

fn eq(&self, other: &OperationCategory) -> 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 OperationCategory

Source§

impl Eq for OperationCategory

Source§

impl StructuralPartialEq for OperationCategory

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.