chaste_types/
error.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// SPDX-FileCopyrightText: 2024 The Chaste Authors
// SPDX-License-Identifier: Apache-2.0 OR BSD-2-Clause

pub use nodejs_semver::{SemverError, SemverErrorKind};
use thiserror::Error;

use crate::package::PackageID;

#[derive(Debug, Error, PartialEq)]
#[non_exhaustive]
pub enum Error {
    #[error("Root package id was not set when building a Chastefile")]
    MissingRootPackageID,

    #[error("Duplicate package added: {0:?}")]
    DuplicatePackage(PackageID),

    #[error("Invalid package name: {0:?}")]
    InvalidPackageName(String),

    #[error("Invalid source/version descriptor: {0:?}")]
    InvalidSVD(String),

    #[error("Invalid module path: {0:?}")]
    InvalidModulePath(String),

    #[error("Semver error: {0:?}")]
    SemverError(#[from] SemverError),
}

pub type Result<T, E = Error> = std::result::Result<T, E>;