1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
//! iRacing shared memory access
//!
//! This module provides direct access to iRacing's shared memory telemetry
//! following the same patterns as the official C++ SDK. The implementation
//! focuses on simplicity and performance over abstraction layers.
//!
//! # Design Philosophy
//!
//! - **Direct Memory Access**: Map iRacing's shared memory directly without
//! unnecessary validation or abstraction layers
//! - **C++ SDK Alignment**: Use identical struct layouts and logic patterns
//! to the official iRacing C++ SDK
//! - **Buffer Rotation**: Properly handle iRacing's 4-buffer rotation system
//! using tick count comparison
//! - **Minimal API Surface**: Expose only what's needed for telemetry reading
//!
//! # Usage
//!
//! ```rust,ignore
//! use pitwall::windows::Connection;
//! use std::time::Duration;
//!
//! // Connect to iRacing
//! let mut connection = Connection::try_connect()?;
//!
//! // Wait for telemetry updates
//! match connection.wait_for_update(Duration::from_millis(100))? {
//! WaitResult::Signaled => {
//! if let Some(data) = connection.get_new_data() {
//! // Process telemetry data
//! }
//! }
//! WaitResult::Timeout => {
//! // No new data available
//! }
//! }
//! ```
pub use ;