#![warn(
clippy::complexity,
clippy::correctness,
clippy::perf,
clippy::style,
clippy::missing_const_for_fn,
clippy::undocumented_unsafe_blocks,
missing_docs,
rust_2018_idioms
)]
#![allow(
clippy::blocks_in_if_conditions,
clippy::redundant_closure_call,
clippy::new_ret_no_self
)]
#![cfg_attr(not(feature = "std"), no_std)]
extern crate alloc;
mod platform;
macro_rules! catch {
($($code:tt)*) => {
(|| { Some({ $($code)* }) })()
}
}
pub mod analysis;
#[cfg(feature = "auto-splitting")]
pub mod auto_splitting;
pub mod comparison;
pub mod component;
#[cfg(feature = "std")]
mod hotkey_config;
#[cfg(feature = "std")]
mod hotkey_system;
pub mod layout;
#[cfg(feature = "networking")]
pub mod networking;
#[cfg(feature = "rendering")]
pub mod rendering;
pub mod run;
pub mod settings;
pub mod timing;
pub mod util;
pub use crate::{
layout::{Component, Editor as LayoutEditor, GeneralSettings as GeneralLayoutSettings, Layout},
platform::DateTime,
run::{Attempt, Editor as RunEditor, Run, RunMetadata, Segment, SegmentHistory},
timing::{
AtomicDateTime, GameTime, RealTime, Time, TimeSpan, TimeStamp, Timer, TimerPhase,
TimingMethod,
},
};
pub use livesplit_hotkey as hotkey;
#[cfg(not(feature = "std"))]
pub use crate::platform::{register_clock, Clock, Duration};
#[cfg(feature = "std")]
pub use crate::{hotkey_config::HotkeyConfig, hotkey_system::HotkeySystem, timing::SharedTimer};