quaver-rs 0.1.0

A Rust library for parsing and analyzing Quaver rhythm game maps
Documentation
//! # Quaver-rs
//! 
//! A Rust library for parsing and analyzing Quaver rhythm game maps.
//! 
//! ## Features
//! 
//! - Parse `.qua` files (Quaver map format)
//! - Calculate map difficulty and strain
//! - Support for different game modes and mods
//! - Comprehensive metadata extraction
//! 
//! ## Example
//! 
//! ```rust
//! use quaver_rs::{Qua, DifficultyProcessor, StrainConstants, ModIdentifier};
//! 
//! // Parse a .qua file
//! let qua = Qua::from_file("path/to/map.qua")?;
//! 
//! // Calculate difficulty
//! let constants = StrainConstants::new(None);
//! let mut processor = DifficultyProcessor::new(qua, constants, ModIdentifier::NONE);
//! processor.calculate_difficulty(ModIdentifier::NONE);
//! 
//! println!("Overall Difficulty: {:.2}", processor.overall_difficulty);
//! ```

pub mod hit_object_info;
pub mod rulesets;
pub mod difficulty_processor;
pub mod qua;
pub mod enums;
pub mod helpers;

// Re-export main types for easy access
pub use qua::{Qua, MapMetadata, TimingPointInfo, TimingGroup, EditorLayerInfo, BookmarkInfo, CustomAudioSampleInfo, SoundEffectInfo};
pub use difficulty_processor::{DifficultyProcessor, StrainConstants, StrainConstantsKeys, ConstantVariable};
pub use enums::{ModIdentifier, GameMode, QssPatternFlags};
pub use hit_object_info::HitObjectInfo;

// Re-export ruleset types
pub use rulesets::structs::{
    FingerAction, FingerState, Hand, LnLayerType, 
    StrainSolverData, StrainSolverHitObject
};

// Re-export helper modules
pub use helpers::{mod_helper, mode_helper};