1use thiserror::Error;
2
3#[derive(Error, Debug)]
4pub enum ConnectError {
5 #[error("failed to connect to dagger engine")]
6 FailedToConnect(#[source] eyre::Error),
7
8 #[error("an error occurred from the dagger context call")]
9 DaggerContext(#[source] eyre::Error),
10
11 #[error("failed to shutdown the dagger connection")]
12 FailedToShutdown(#[source] eyre::Error),
13}
14
15#[derive(Error, Debug)]
16pub enum DaggerError {
17 #[error("failed to build dagger internal graph")]
18 Build(#[source] eyre::Error),
19 #[error("failed to parse input type")]
20 Serialize(#[source] eyre::Error),
21 #[error("failed to query dagger engine: {0}")]
22 Query(#[source] crate::core::graphql_client::GraphQLError),
23 #[error("failed to unpack response")]
24 Unpack(#[source] DaggerUnpackError),
25 #[error("failed to download client")]
26 DownloadClient(#[source] eyre::Error),
27}
28
29#[derive(Error, Debug)]
30pub enum DaggerUnpackError {
31 #[error("Too many nested objects inside graphql response")]
32 TooManyNestedObjects,
33 #[error("failed to deserialize response")]
34 Deserialize(#[source] serde_json::Error),
35}