Skip to main content

fusen_rs/handler/
aspect.rs

1use 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}