in_component

Attribute Macro in_component 

Source
#[in_component]
Expand description

Mark modules or files as belonging to a specific component.

This attribute enables:

  • Discovery: Find all files in a component via grep or IDE search
  • Navigation: IDE integration for “jump to component” features
  • Documentation: Auto-group errors by component in generated docs
  • Organization: Track scattered components across different folders

§Syntax

#[in_component(ComponentName)]

§Examples

Marking a folder (via mod.rs):

// src/auth/mod.rs
#[in_component(Auth)]

mod token;
mod session;

Marking scattered files:

// src/api/middleware.rs
#[in_component(Auth)]  // Auth logic here too!

use waddling_errors::diag;
// ... Auth-related errors ...

Finding all Auth components:

grep -r "#\[in_component(Auth)\]" src/

§Metadata Generated

The macro creates a hidden module with:

  • Component name constant
  • Module path (for IDE integration)
  • File path (for tooling)
  • Marker trait (for discovery)