nacos-sdk 0.7.0

Nacos client in Rust.
Documentation
use crate::{
    common::remote::grpc::nacos_grpc_service::ServerRequestHandler, nacos_proto::v2::Payload,
};
use async_trait::async_trait;
use tracing::{error, info};

pub(crate) struct DefaultHandler;

#[async_trait]
impl ServerRequestHandler for DefaultHandler {
    async fn request_reply(&self, request: Payload) -> Option<Payload> {
        let p_type;
        let r_body;
        let r_type;
        let client_ip;
        let headers;

        if let Some(body) = request.body {
            p_type = body.type_url;
            r_body = String::from_utf8(body.value).unwrap_or_else(|e| {
                error!("unknown payload convert to string failed. {}", e);
                Default::default()
            })
        } else {
            r_body = Default::default();
            p_type = Default::default();
        }

        if let Some(meta_data) = request.metadata {
            r_type = meta_data.r#type;
            client_ip = meta_data.client_ip;
            headers = meta_data.headers;
        } else {
            r_type = Default::default();
            client_ip = Default::default();
            headers = Default::default();
        }

        info!(
            "unknown server request. type: {}, client_ip: {}, headers:{:?}, payload: {}, payload_type: {}",
            r_type, client_ip, headers, r_body, p_type
        );

        return None;
    }
}