conreg_client/protocol/
mod.rs

1use serde::{Deserialize, Serialize};
2use serde_yaml::Value;
3use std::collections::HashMap;
4
5pub(crate) mod request;
6pub(crate) mod response;
7
8/// 服务示例
9#[derive(Debug, Clone, Default, Serialize, Deserialize)]
10pub struct Instance {
11    /// 实例ID,由conreg自动生成
12    pub id: String,
13    /// 服务ID
14    pub service_id: String,
15    /// 实例IP
16    pub ip: String,
17    /// 端口
18    pub port: u16,
19    /// 元数据
20    pub meta: HashMap<String, Value>,
21}
22
23impl Instance {
24    pub fn get_weight(&self) -> u64 {
25        self.meta
26            .get("weight")
27            .unwrap_or(&Value::Number(1.into()))
28            .as_u64()
29            .unwrap()
30    }
31}