fusen-rs 0.8.11

RPC framework for service registration and discovery through API exposure, compatible with Dubbo3 protocol, intertunable with Java projects
Documentation
use fusen_internal_common::BoxFuture;

use crate::{
    error::FusenError,
    filter::{FusenFilter, ProceedingJoinPoint},
    protocol::fusen::context::FusenContext,
};

#[allow(async_fn_in_trait)]
pub trait Aspect {
    async fn aroud(&self, join_point: ProceedingJoinPoint) -> Result<FusenContext, FusenError>;
}

pub struct DefaultAspect;

impl FusenFilter for DefaultAspect {
    fn call(&self, join_point: ProceedingJoinPoint) -> BoxFuture<Result<FusenContext, FusenError>> {
        Box::pin(async move { join_point.proceed().await })
    }
}