Skip to main content

Crate lechange_core

Crate lechange_core 

Source
Expand description

§LeChange Core

Ultra-fast Git change detection library with zero-cost abstractions.

This library provides high-performance git diff operations using:

  • GATs (Generic Associated Types) for zero-cost async
  • Lifetimes over Arc for zero-copy string handling
  • String interning for path deduplication
  • Rayon for CPU-bound parallel processing
  • Tokio for async I/O operations

§Example

use lechange_core::{InputConfig, detect_changes};
use std::borrow::Cow;

let config = InputConfig {
    base_sha: Some(Cow::Borrowed("HEAD^")),
    sha: Some(Cow::Borrowed("HEAD")),
    ..Default::default()
};

let result = detect_changes(config).await?;
println!("Changed files: {}", result.all_files.len());

Re-exports§

pub use error::Error;
pub use error::Result;
pub use interner::StringInterner;
pub use types::ChangeType;
pub use types::ChangedFile;
pub use types::CiDecision;
pub use types::DiffResult;
pub use types::FailureTrackingLevel;
pub use types::GroupDeployAction;
pub use types::GroupDeployDecision;
pub use types::GroupDeployReason;
pub use types::InputConfig;
pub use types::InternedString;
pub use types::ProcessedResult;

Modules§

coordination
Main coordination logic
error
Error types for lechange-core
file_ops
File operations with symlink detection and caching
git
Git operations module
http
HTTP client for GitHub API
interner
String interner for zero-copy path deduplication
output
Output computation and formatting module
patterns
Pattern matching module
platform
Platform-specific utilities
types
Core type definitions with zero-copy design

Functions§

detect_changes
Detect changed files between two git references
detect_changes_sync
Synchronous variant of detect_changes