rpc-core-net 0.2.2

a tiny rpc library for rust
Documentation
use std::rc::Rc;

use crate::config::{RpcConfig, TcpConfig};

pub struct TcpConfigBuilder {
    auto_pack: bool,
    enable_ipv6: bool,
    max_body_size: u32,
    max_send_buffer_size: u32,
    socket_send_buffer_size: u32,
    socket_recv_buffer_size: u32,
}

impl TcpConfigBuilder {
    pub fn new() -> Self {
        Self {
            auto_pack: false,
            enable_ipv6: false,
            max_body_size: 0,
            max_send_buffer_size: 0,
            socket_send_buffer_size: 0,
            socket_recv_buffer_size: 0,
        }
    }

    pub fn auto_pack(&mut self, auto_pack: bool) -> &mut Self {
        self.auto_pack = auto_pack;
        self
    }

    pub fn enable_ipv6(&mut self, enable_ipv6: bool) -> &mut Self {
        self.enable_ipv6 = enable_ipv6;
        self
    }

    pub fn max_body_size(&mut self, max_body_size: u32) -> &mut Self {
        self.max_body_size = max_body_size;
        self
    }

    pub fn max_send_buffer_size(&mut self, max_send_buffer_size: u32) -> &mut Self {
        self.max_send_buffer_size = max_send_buffer_size;
        self
    }

    pub fn socket_send_buffer_size(&mut self, socket_send_buffer_size: u32) -> &mut Self {
        self.socket_send_buffer_size = socket_send_buffer_size;
        self
    }

    pub fn socket_recv_buffer_size(&mut self, socket_recv_buffer_size: u32) -> &mut Self {
        self.socket_recv_buffer_size = socket_recv_buffer_size;
        self
    }

    pub fn build(&self) -> TcpConfig {
        TcpConfig {
            auto_pack: self.auto_pack,
            enable_ipv6: self.enable_ipv6,
            max_body_size: self.max_body_size,
            max_send_buffer_size: self.max_send_buffer_size,
            socket_send_buffer_size: self.socket_send_buffer_size,
            socket_recv_buffer_size: self.socket_recv_buffer_size,
        }
    }
}

pub struct RpcConfigBuilder {
    rpc: Option<Rc<rpc_core::rpc::Rpc>>,
    ping_interval_ms: u32,
    pong_timeout_ms: u32,
    enable_ipv6: bool,
    max_body_size: u32,
    max_send_buffer_size: u32,
    socket_send_buffer_size: u32,
    socket_recv_buffer_size: u32,
}

impl RpcConfigBuilder {
    pub fn new() -> Self {
        RpcConfigBuilder {
            rpc: None,
            ping_interval_ms: 0,
            pong_timeout_ms: 0,
            enable_ipv6: false,
            max_body_size: 0,
            max_send_buffer_size: 0,
            socket_send_buffer_size: 0,
            socket_recv_buffer_size: 0,
        }
    }

    pub fn rpc(mut self, rpc: Option<Rc<rpc_core::rpc::Rpc>>) -> Self {
        self.rpc = rpc;
        self
    }

    pub fn ping_interval_ms(mut self, ping_interval_ms: u32) -> Self {
        self.ping_interval_ms = ping_interval_ms;
        self
    }

    pub fn pong_timeout_ms(mut self, pong_timeout_ms: u32) -> Self {
        self.pong_timeout_ms = pong_timeout_ms;
        self
    }

    pub fn enable_ipv6(mut self, enable_ipv6: bool) -> Self {
        self.enable_ipv6 = enable_ipv6;
        self
    }

    pub fn max_body_size(mut self, max_body_size: u32) -> Self {
        self.max_body_size = max_body_size;
        self
    }

    pub fn max_send_buffer_size(mut self, max_send_buffer_size: u32) -> Self {
        self.max_send_buffer_size = max_send_buffer_size;
        self
    }

    pub fn socket_send_buffer_size(mut self, socket_send_buffer_size: u32) -> Self {
        self.socket_send_buffer_size = socket_send_buffer_size;
        self
    }

    pub fn socket_recv_buffer_size(mut self, socket_recv_buffer_size: u32) -> Self {
        self.socket_recv_buffer_size = socket_recv_buffer_size;
        self
    }

    pub fn build(self) -> RpcConfig {
        RpcConfig {
            rpc: self.rpc,
            ping_interval_ms: self.ping_interval_ms,
            pong_timeout_ms: self.pong_timeout_ms,
            enable_ipv6: self.enable_ipv6,
            max_body_size: self.max_body_size,
            max_send_buffer_size: self.max_send_buffer_size,
            socket_send_buffer_size: self.socket_send_buffer_size,
            socket_recv_buffer_size: self.socket_recv_buffer_size,
        }
    }
}