casper_client/cli/deploy_builder/
error.rs

1use core::fmt::{self, Display, Formatter};
2use std::error::Error as StdError;
3
4#[cfg(doc)]
5use super::{Deploy, DeployBuilder};
6
7/// Errors returned while building a [`Deploy`] using a [`DeployBuilder`].
8#[derive(Clone, Eq, PartialEq, Debug)]
9#[non_exhaustive]
10pub enum DeployBuilderError {
11    /// Failed to build `Deploy` due to missing session account.
12    ///
13    /// Call [`DeployBuilder::with_account`] or [`DeployBuilder::with_secret_key`] before
14    /// calling [`DeployBuilder::build`].
15    DeployMissingSessionAccount,
16    /// Failed to build `Deploy` due to missing payment code.
17    ///
18    /// Call [`DeployBuilder::with_payment`] before
19    /// calling [`DeployBuilder::build`].
20    DeployMissingPaymentCode,
21}
22
23impl Display for DeployBuilderError {
24    fn fmt(&self, formatter: &mut Formatter) -> fmt::Result {
25        match self {
26            DeployBuilderError::DeployMissingSessionAccount => {
27                write!(
28                    formatter,
29                    "deploy requires session account - use `with_account` or `with_secret_key`"
30                )
31            }
32            DeployBuilderError::DeployMissingPaymentCode => {
33                write!(
34                    formatter,
35                    "deploy requires payment code - use `with_payment`"
36                )
37            }
38        }
39    }
40}
41
42impl StdError for DeployBuilderError {}