Skip to main content

Crate aspect_std

Crate aspect_std 

Source
Expand description

§aspect-std

Standard aspects library providing common, production-ready aspects.

This crate provides a collection of reusable aspects for common cross-cutting concerns:

  • Logging: Structured logging with configurable levels
  • Timing: Performance monitoring with statistics
  • Caching: Generic memoization with TTL
  • Metrics: Counters, gauges, and histograms
  • Rate Limiting: Token bucket algorithm for throttling
  • Circuit Breaker: Fault tolerance and failure prevention
  • Authorization: Role-based access control
  • Validation: Pre/post condition checking

§Quick Start

use aspect_std::prelude::*;
use aspect_macros::aspect;

// Use the standard logging aspect
#[aspect(LoggingAspect::new())]
fn my_function(x: i32) -> i32 {
    x * 2
}

Re-exports§

pub use logging::LoggingAspect;
pub use timing::TimingAspect;
pub use caching::CachingAspect;
pub use metrics::MetricsAspect;
pub use ratelimit::RateLimitAspect;
pub use circuitbreaker::CircuitBreakerAspect;
pub use circuitbreaker::CircuitState;
pub use authorization::AuthorizationAspect;
pub use authorization::AuthMode;
pub use validation::ValidationAspect;
pub use validation::ValidationRule;

Modules§

authorization
Authorization aspect for role-based access control.
caching
Generic caching/memoization aspect.
circuitbreaker
Circuit breaker aspect for fault tolerance.
logging
Structured logging aspect with configurable levels.
metrics
Metrics collection aspect (counters, gauges, histograms).
prelude
Prelude module for convenient imports.
ratelimit
Rate limiting aspect using token bucket algorithm.
timing
Performance monitoring aspect with statistics.
validation
Validation aspect for pre/post condition checking.