purezen/lib.rs
1//
2// Copyright © 2019 NeoBirth Developers
3//
4// This file is part of PureZen (a fork of ZenGarden)
5//
6// PureZen is free software: you can redistribute it and/or modify
7// it under the terms of the GNU Lesser General Public License as published by
8// the Free Software Foundation, either version 3 of the License, or
9// (at your option) any later version.
10//
11// PureZen is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14// GNU Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public License
17// along with PureZen. If not, see <http://www.gnu.org/licenses/>.
18//
19
20//! **PureZen**: runtime for the [Pure Data] (Pd) audio programming language,
21//! implemented as an extensible audio library allowing full control over
22//! signal processing, message passing, and graph manipulation.
23//!
24//! Adapted from [ZenGarden] (originally written in C++) with intent to target
25//! embedded (i.e. `no_std`) platforms.
26//!
27//! [Pure Data]: https://puredata.info/
28//! [ZenGarden]: https://github.com/mhroth/ZenGarden
29
30#![no_std]
31#![cfg_attr(all(feature = "nightly", not(feature = "std")), feature(alloc))]
32#![deny(
33 warnings,
34 missing_docs,
35 trivial_casts,
36 trivial_numeric_casts,
37 unsafe_code,
38 unused_import_braces,
39 unused_qualifications
40)]
41#![forbid(unsafe_code)]
42#![doc(
43 html_logo_url = "https://raw.githubusercontent.com/NeoBirth/PureZen/master/purezen.png",
44 html_root_url = "https://docs.rs/purezen/0.0.2"
45)]
46
47#[cfg(any(feature = "std", test))]
48#[macro_use]
49extern crate std;
50
51#[macro_use]
52extern crate failure_derive;
53
54// TODO: remove `pub` on modules which are not part of the public API
55pub mod allocator;
56mod error;
57mod list;
58pub mod message;
59pub mod pd;
60#[cfg(feature = "alloc")]
61mod prelude;
62pub mod utils;
63
64pub use error::*;