iota_graphql_rpc_client/
lib.rs1use async_graphql::Value;
6use reqwest::header::ToStrError;
7use serde_json::Number;
8
9pub mod response;
10pub mod simple_client;
11
12#[derive(Debug, thiserror::Error)]
13pub enum ClientError {
14 #[error("Service version header not found")]
15 ServiceVersionHeaderNotFound,
16 #[error("Service version header value invalid string: {error}")]
17 ServiceVersionHeaderValueInvalidString { error: ToStrError },
18 #[error("Invalid usage number for {usage_name}: {usage_number}")]
19 InvalidUsageNumber {
20 usage_name: String,
21 usage_number: Number,
22 },
23 #[error("Invalid usage field for {usage_name}: {usage_value}")]
24 InvalidUsageValue {
25 usage_name: String,
26 usage_value: Value,
27 },
28 #[error("{item_type} at pos {idx} must not be empty")]
29 InvalidEmptyItem { item_type: String, idx: usize },
30 #[error(
31 "Invalid variable name: `{var_name}`. Variable names must be non-empty and start with a letter or underscore, and may only contain letters, digits, and underscores."
32 )]
33 InvalidVariableName { var_name: String },
34
35 #[error(
36 "Conflicting type definitions for variable {var_name}: {var_type_prev} vs {var_type_curr}"
37 )]
38 VariableDefinitionConflict {
39 var_name: String,
40 var_type_prev: String,
41 var_type_curr: String,
42 },
43 #[error("Conflicting values for variable {var_name}: {var_val_prev} vs {var_val_curr}")]
44 VariableValueConflict {
45 var_name: String,
46 var_val_prev: serde_json::Value,
47 var_val_curr: serde_json::Value,
48 },
49 #[error(transparent)]
50 InnerClient(#[from] reqwest::Error),
51}