1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
mod config;
mod http_client;
mod namespace;
mod response;
mod service;

pub use config::NacosConfigClient;
pub use http_client::NacosConfig;
pub use namespace::NacosNamespace;
pub use service::NacosService;

pub use service::structs;

pub struct NacosClient {
    config: NacosConfig,
}

impl NacosClient {
    pub fn new(scheme: &str, host: &str, port: u16) -> Self {
        Self {
            config: NacosConfig::new(scheme, host, port, "/nacos"),
        }
    }

    pub fn new_from_config(config: &NacosConfig) -> Self {
        Self {
            config: config.clone(),
        }
    }

    pub fn config_client(&self) -> NacosConfigClient {
        NacosConfigClient::new(&self.config.into_client())
    }

    pub fn namespace_client(&self) -> NacosNamespace {
        NacosNamespace::new(&self.config.into_client())
    }

    pub fn service_client(&self) -> NacosService {
        NacosService::new(&self.config.into_client())
    }
}