fusen_rs/handler/
aspect.rs1use fusen_internal_common::BoxFuture;
2
3use crate::{
4 error::FusenError,
5 filter::{FusenFilter, ProceedingJoinPoint},
6 protocol::fusen::context::FusenContext,
7};
8
9#[allow(async_fn_in_trait)]
10pub trait Aspect {
11 async fn aroud(&self, join_point: ProceedingJoinPoint) -> Result<FusenContext, FusenError>;
12}
13
14pub struct DefaultAspect;
15
16impl FusenFilter for DefaultAspect {
17 fn call(&self, join_point: ProceedingJoinPoint) -> BoxFuture<Result<FusenContext, FusenError>> {
18 Box::pin(async move { join_point.proceed().await })
19 }
20}