primary

Macro primary 

Source
primary!() { /* proc-macro */ }
Expand description

Define primary enums with automatic PrimaryId trait implementation.

§WDP Naming Convention

Per WDP specification, primary names SHOULD use PascalCase:

  • Token, Connection, Validation, RateLimit
  • TOKEN, CONNECTION, VALIDATION (non-standard)

Error codes follow the format: E.Component.Primary.SEQUENCE

  • Example: E.Database.Connection.TIMEOUT not E.DATABASE.CONNECTION.TIMEOUT

§Metadata Fields

Supports all metadata fields in any order:

  • description - Documentation string
  • introduced - Version introduced
  • deprecated - Deprecation notice
  • examples - Array of example error codes
  • related - Array of related primary codes

§Examples

primary! {
    Token,                   // Simple: "Token"
    Connection {             // With metadata
        description: "Connection errors",
        related: ["Timeout", "Pool"],
    },
}

// Generated code implements PrimaryIdDocumented trait:
let desc = Primary::Connection.description();  // Trait method
let related = Primary::Connection.related();