//! Fast, streaming reader for MCNP RSSA (surface source) files.
//!
//! An RSSA file starts with a small header describing the simulation and the
//! surfaces tracks were recorded on ([`header::parse_header`] /
//! [`header::FileParameters`]), followed by a large number of fixed-size track
//! records. [`RssaFile`] memory-maps the file and decodes track records into Polars
//! [`DataFrame`](polars::frame::DataFrame)s, either eagerly or in batches, using
//! [`rayon`] to parallelize decoding across CPU cores.

pub mod error;
pub mod fortran;
pub mod header;
pub mod reader;
pub mod tracks;

pub use error::{Result, RssaError};
pub use header::FileParameters;
pub use reader::{BatchReader, RssaFile};
pub use tracks::{Column, NEUTRON_PARTICLE_TYPE, TrackLayout};
