root_io/
lib.rs

1//! # Root-io
2//! This crate provides a way to retrieve data saved in the
3//! [ROOT](https://root.cern.ch/) binary format commonly used in
4//! particle physics experiments. This library provides the basic
5//! means to inspect and process the contents of arbitrary ROOT
6//! files. `Root-io` provides a simple mean to read
7//! data stored in so-called `TTrees`.  The goal of this library is
8//! primarily to make the data [published](http://opendata.cern.ch/)
9//! by the ALICE collaboration accessible in pure Rust. An example of
10//! its usage for that purpose is demonstrated as an [example
11//! analysis](https://github.com/cbourjau/alice-rs/tree/master/examples/simple-analysis).
12//!
13//! The API surface is deliberately small to make the processing of said
14//! files as easy as possible. If you are looking for a particular
15//! parser chances have it that it exists but it is not marked as `pub`.
16#![allow(clippy::cognitive_complexity)]
17#![recursion_limit = "256"]
18#[macro_use]
19extern crate bitflags;
20#[macro_use]
21extern crate nom;
22#[macro_use]
23extern crate quote;
24#[macro_use]
25extern crate failure;
26extern crate flate2;
27extern crate lzma_rs;
28extern crate reqwest;
29
30extern crate alice_open_data;
31
32// pub mod core_types;
33mod code_gen;
34pub mod core;
35pub mod test_utils;
36mod tests;
37pub mod tree_reader;
38
39// Contains the stream_zip macro
40pub mod utils;
41
42pub use crate::core::{FileItem, RootFile, Source};
43
44/// Offset when using Context; should be in `Context`, maybe?
45const MAP_OFFSET: u64 = 2;