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_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