Skip to main content

dfx_core/error/
network_config.rs

1use crate::error::config::{ConfigError, GetSharedWalletConfigPathError, GetTempPathError};
2use crate::error::fs::ReadToStringError;
3use crate::error::get_user_home::GetUserHomeError;
4use crate::error::socket_addr_conversion::SocketAddrConversionError;
5use crate::error::structured_file::StructuredFileError;
6use crate::error::uri::UriError;
7use candid::types::principal::PrincipalError;
8use std::num::ParseIntError;
9use std::path::PathBuf;
10use thiserror::Error;
11
12#[derive(Error, Debug)]
13pub enum NetworkConfigError {
14    #[error(transparent)]
15    ReadToString(#[from] ReadToStringError),
16
17    #[error(transparent)]
18    Config(#[from] ConfigError),
19
20    #[error(transparent)]
21    DetermineSharedNetworkDirectoryFailed(#[from] GetUserHomeError),
22
23    #[error(transparent)]
24    UriError(#[from] UriError),
25
26    #[error("Failed to get replica endpoint for network '{network_name}'")]
27    GettingReplicaUrlsFailed {
28        network_name: String,
29        source: UriError,
30    },
31
32    #[error(transparent)]
33    GetSharedWalletConfigPathError(#[from] GetSharedWalletConfigPathError),
34
35    #[error(transparent)]
36    GetTempPath(#[from] GetTempPathError),
37
38    #[error(transparent)]
39    LoadNetworkId(StructuredFileError),
40
41    #[error("Network '{0}' does not specify any network providers.")]
42    NetworkHasNoProviders(String),
43
44    #[error("The '{0}' network must be a local network.")]
45    NetworkMustBeLocal(String),
46
47    #[error("Network not found: {0}")]
48    NetworkNotFound(String),
49
50    #[error("Cannot find network context.")]
51    NoNetworkContext(),
52
53    #[error("Did not find any providers for network '{0}'")]
54    NoProvidersForNetwork(String),
55
56    #[error("Failed to parse bind address")]
57    ParseBindAddressFailed(#[source] SocketAddrConversionError),
58
59    #[error("Failed to parse contents of {0} as a port value")]
60    ParsePortValueFailed(Box<PathBuf>, #[source] Box<ParseIntError>),
61
62    #[error("Failed to parse URL '{0}'")]
63    ParseProviderUrlFailed(Box<String>, #[source] url::ParseError),
64
65    #[error("Failed to read webserver port")]
66    ReadWebserverPortFailed(#[source] ReadToStringError),
67
68    #[error("Failed to parse principal '{0}'")]
69    ParsePrincipalFailed(String, #[source] PrincipalError),
70}