MCPcopy Create free account
hub / github.com/deventlab/d-engine / not_leader_error

Function not_leader_error

d-engine-server/src/api/embedded_client.rs:60–85  ·  view source on GitHub ↗
(
    leader_id: Option<String>,
    leader_address: Option<String>,
    retry_after_ms: Option<u64>,
)

Source from the content-addressed store, hash-verified

58}
59
60fn not_leader_error(
61 leader_id: Option<String>,
62 leader_address: Option<String>,
63 retry_after_ms: Option<u64>,
64) -> ClientApiError {
65 let message = match (&leader_address, &leader_id) {
66 (Some(addr), _) => format!("Not leader, try leader at: {addr}"),
67 (None, Some(id)) => format!("Not leader, leader_id: {id}"),
68 (None, None) => "Not leader".to_string(),
69 };
70
71 let leader_hint = match (&leader_id, &leader_address) {
72 (Some(id_str), Some(addr)) => id_str.parse::<u32>().ok().map(|id| LeaderHint {
73 leader_id: id,
74 address: addr.clone(),
75 }),
76 _ => None,
77 };
78
79 ClientApiError::Network {
80 code: ErrorCode::NotLeader,
81 message,
82 retry_after_ms: retry_after_ms.or(Some(100)),
83 leader_hint,
84 }
85}
86
87fn server_error(msg: String) -> ClientApiError {
88 ClientApiError::Business {

Calls 1

cloneMethod · 0.45