1#![warn(missing_docs)]
26
27#[cfg(target_family = "unix")]
28#[cfg(feature = "capi")]
29pub mod c_api;
30pub mod cell;
32pub mod cell_collector;
34pub mod cluster;
36pub mod compression;
38pub mod cres;
39pub mod distance;
41pub mod event;
43pub mod formats;
45pub mod four_vector;
47pub mod hepmc2;
49pub mod io;
51#[cfg(feature = "lhef")]
53pub mod lhef;
54pub mod neighbour_search;
56#[cfg(feature = "ntuple")]
58pub mod ntuple;
59pub mod partition;
61pub mod prelude;
63pub mod progress_bar;
65pub mod resampler;
67pub mod seeds;
69#[cfg(feature = "stripper-xml")]
71pub mod stripper_xml;
72pub mod traits;
74pub mod unweight;
76pub mod vptree;
78
79mod parsing;
80mod util;
81
82const fn parse_version(s: &str) -> u32 {
83 match u32::from_str_radix(s, 10) {
84 Ok(int) => int,
85 Err(_) => panic!("Failed to parse version number"),
86 }
87}
88
89pub const VERSION: &str = env!("CARGO_PKG_VERSION");
91pub const VERSION_MAJOR: u32 = parse_version(env!("CARGO_PKG_VERSION_MAJOR"));
93pub const VERSION_MINOR: u32 = parse_version(env!("CARGO_PKG_VERSION_MINOR"));
95pub const VERSION_PATCH: u32 = parse_version(env!("CARGO_PKG_VERSION_PATCH"));
97pub const GIT_REV: Option<&str> = option_env!("VERGEN_GIT_SHA");
99pub const GIT_BRANCH: Option<&str> = option_env!("VERGEN_GIT_BRANCH");
101
102pub const FEATURES: [&str; NFEATURES] = [
104 #[cfg(feature = "lhef")]
105 "lhef",
106 #[cfg(feature = "multiweight")]
107 "multiweight",
108 #[cfg(feature = "ntuple")]
109 "ntuple",
110 #[cfg(feature = "stripper-xml")]
111 "stripper-xml",
112 #[cfg(feature = "capi")]
113 "capi",
114];
115
116const NFEATURES: usize = {
117 #[allow(unused_mut)]
118 let mut nfeatures = 0;
119 #[cfg(feature = "lhef")]
120 {
121 nfeatures += 1;
122 }
123 #[cfg(feature = "multiweight")]
124 {
125 nfeatures += 1;
126 }
127 #[cfg(feature = "ntuple")]
128 {
129 nfeatures += 1;
130 }
131 #[cfg(feature = "stripper-xml")]
132 {
133 nfeatures += 1;
134 }
135 #[cfg(feature = "capi")]
136 {
137 nfeatures += 1;
138 }
139 nfeatures
140};
141
142pub use noisy_float::prelude::{n64, N64, Float};
143pub use particle_id::*;