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
#![feature(const_mut_refs)]
#![feature(const_panic)]
#![feature(const_str_from_utf8_unchecked)]
#![feature(external_doc)]

//! # Impulse Tracker module file parser and writer
//!
//! ## Additional resources
//! - <https://github.com/OpenMPT/openmpt/blob/master/soundlib/ITTools.h>
//! - <https://github.com/OpenMPT/openmpt/blob/master/soundlib/ITTools.cpp>
//! - <https://github.com/OpenMPT/openmpt/blob/master/soundlib/Load_it.cpp>


/// ITTECH.TXT (documentation only)
///
/// This is a file documenting Impulse Tracker taken from
/// <https://github.com/schismtracker/schismtracker/wiki/ITTECH.TXT>
///
#[doc(include = "../ITTECH.txt")]
pub mod ittech_txt {}

#[macro_use]
// Macro exporting is still weird. We want the macros to be `pub(crate)`, the combination of
// `#[macro_use]`, the module containing them being lexically first, never importing the macros
// with `use` and using it as `macro!()` not `$crate::macro!()` seems to work out to that.
pub mod error;

mod data;
pub use data::*;

pub mod parser;
pub mod writer;

pub use parser::scan::FileType;