Crate scribe_core

Crate scribe_core 

Source
Expand description

Core crate for Scribe

§Scribe Core

Core types, utilities, and foundational components for the Scribe code analysis library. This crate provides the fundamental data structures and traits used across all other Scribe crates.

§Features

  • Comprehensive Error Handling: Rich error types with proper context and error chaining
  • File Analysis: File metadata, language detection, and classification
  • Scoring System: Heuristic scoring components and configurable weights
  • Configuration: Flexible configuration with validation and serialization
  • Extensibility: Traits for custom analyzers, scorers, and formatters
  • Utilities: Common functions for path manipulation, string processing, and more

§Basic Usage

use scribe_core::{Config, FileInfo, ScoreComponents, Result};
use std::path::Path;

// Load configuration
let config = Config::default();

// Analyze a file (this would typically be done by other crates)
// let file_info = analyze_file(Path::new("src/lib.rs"), &config)?;

Re-exports§

pub use error::Result;
pub use error::ScribeError;
pub use file::bytes_to_human;
pub use file::ConfigurationFormat;
pub use file::DocumentationFormat;
pub use file::FileInfo;
pub use file::FileType;
pub use file::GitFileStatus;
pub use file::GitStatus;
pub use file::Language;
pub use file::RenderDecision;
pub use file::RenderDecisionCategory;
pub use file::BINARY_EXTENSIONS;
pub use file::MARKDOWN_EXTENSIONS;
pub use types::AnalysisMetadata;
pub use types::AnalysisResult;
pub use types::CentralityScores;
pub use types::ChurnInfo;
pub use types::FileTypeStats;
pub use types::GitStatistics;
pub use types::GraphStats;
pub use types::HeuristicWeights;
pub use types::LanguageStats;
pub use types::Position;
pub use types::Range;
pub use types::RepositoryInfo;
pub use types::ScoreComponents;
pub use types::SizeStatistics;
pub use config::AnalysisConfig;
pub use config::Config;
pub use config::CustomScoringRule;
pub use config::FeatureFlags;
pub use config::FilteringConfig;
pub use config::GeneralConfig;
pub use config::GitConfig;
pub use config::OutputConfig;
pub use config::OutputFormat;
pub use config::PerformanceConfig;
pub use config::ScoreModifier;
pub use config::ScoringConfig;
pub use traits::CacheStats;
pub use traits::CacheStorage;
pub use traits::CentralityComputer;
pub use traits::DependencyGraph;
pub use traits::DependencyNodeMetadata;
pub use traits::DocumentationBlock;
pub use traits::DocumentationType;
pub use traits::FileAnalyzer;
pub use traits::GitIntegration;
pub use traits::GitRepositoryInfo;
pub use traits::HeuristicScorer;
pub use traits::LanguageExtension;
pub use traits::OutputFormatter;
pub use traits::PatternMatcher;
pub use traits::PluginRegistry;
pub use traits::ProgressReporter;
pub use traits::RepositoryAnalyzer;
pub use utils::hash::generate_hash;
pub use utils::hash::hash_file_content;
pub use utils::math::clamp;
pub use utils::math::mean;
pub use utils::math::median;
pub use utils::math::normalize;
pub use utils::math::std_deviation;
pub use utils::path::find_repo_root;
pub use utils::path::is_hidden;
pub use utils::path::is_under_directory;
pub use utils::path::normalize_path;
pub use utils::path::path_depth;
pub use utils::path::relative_path;
pub use utils::string::count_lines;
pub use utils::string::dedent;
pub use utils::string::extract_identifier;
pub use utils::string::is_likely_binary;
pub use utils::string::truncate;
pub use utils::time::current_timestamp;
pub use utils::time::duration_to_human;
pub use utils::validation::validate_directory;
pub use utils::validation::validate_file;
pub use utils::validation::validate_readable_path;
pub use tokenization::ContentType;
pub use tokenization::TokenBudget;
pub use tokenization::TokenCounter;
pub use tokenization::TokenizationComparison;
pub use tokenization::TokenizerConfig;

Modules§

config
Configuration types and management for Scribe.
error
Error handling for the Scribe library.
file
File-related types and utilities.
meta
Library metadata and build information
prelude
Prelude module for convenient imports Commonly used imports for Scribe applications
tokenization
Tokenization Module
traits
Core traits for extensibility and plugin architecture.
types
Core type definitions for the Scribe library.
utils
Utility functions and helpers for the Scribe library.

Constants§

VERSION
Current version of the Scribe library