use crate::batbelt::path::prettify_source_code_path;
use colored::Colorize;
use error_stack::Result;
use std::error::Error;
use std::fmt;
pub mod call_resolver;
pub mod code_overhaul_parser;
pub mod context_accounts_parser;
pub mod entrypoint_parser;
pub mod file_scope;
pub mod function_parser;
pub mod pinocchio_context_accounts_parser;
pub mod solana_account_parser;
pub mod source_code_parser;
pub mod syn_context_accounts_parser;
pub mod syn_function_dependency_parser;
pub mod syn_struct_classifier;
pub mod trait_parser;
pub mod type_resolver;
#[derive(Debug)]
pub struct ParserError;
impl fmt::Display for ParserError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
f.write_str("EntrypointParser error")
}
}
impl Error for ParserError {}
pub type ParserResult<T> = Result<T, ParserError>;
pub fn parse_formatted_path(name: String, path: String, start_line_index: usize) -> String {
format!(
"{}: {}:{}",
name.blue(),
prettify_source_code_path(path.trim_start_matches("../")).unwrap(),
start_line_index
)
}