dbt-lineage 0.1.0

A Rust CLI tool for visualizing dbt model lineage
Documentation
use std::path::PathBuf;
use thiserror::Error;

#[derive(Error, Debug)]
#[allow(dead_code)]
pub enum DbtLineageError {
    #[error("dbt project not found: no dbt_project.yml in {0}")]
    ProjectNotFound(PathBuf),

    #[error("failed to read file {path}: {source}")]
    FileReadError {
        path: PathBuf,
        source: std::io::Error,
    },

    #[error("failed to parse YAML in {path}: {source}")]
    YamlParseError {
        path: PathBuf,
        source: serde_yaml::Error,
    },

    #[error("model not found: {0}")]
    ModelNotFound(String),

    #[error("cycle detected in lineage graph")]
    CycleDetected,

    #[error("duplicate model name '{name}' found in {path1} and {path2}")]
    DuplicateModel {
        name: String,
        path1: PathBuf,
        path2: PathBuf,
    },

    #[error("failed to parse artifact {path}: {source}")]
    ArtifactParseError {
        path: PathBuf,
        source: serde_json::Error,
    },
}