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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//
// Copyright © 2019 NeoBirth Developers
//
// This file is part of PureZen (a fork of ZenGarden)
//
// PureZen is free software: you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// PureZen is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public License
// along with PureZen.  If not, see <http://www.gnu.org/licenses/>.
//

//! **PureZen**: runtime for the [Pure Data] (Pd) audio programming language,
//! implemented as an extensible audio library allowing full control over
//! signal processing, message passing, and graph manipulation.
//!
//! Adapted from [ZenGarden] (originally written in C++) with intent to target
//! embedded (i.e. `no_std`) platforms.
//!
//! [Pure Data]: https://puredata.info/
//! [ZenGarden]: https://github.com/mhroth/ZenGarden

#![no_std]
#![cfg_attr(all(feature = "nightly", not(feature = "std")), feature(alloc))]
#![deny(
    warnings,
    missing_docs,
    trivial_casts,
    trivial_numeric_casts,
    unsafe_code,
    unused_import_braces,
    unused_qualifications
)]
#![forbid(unsafe_code)]
#![doc(
    html_logo_url = "https://raw.githubusercontent.com/NeoBirth/PureZen/master/purezen.png",
    html_root_url = "https://docs.rs/purezen/0.0.2"
)]

#[cfg(any(feature = "std", test))]
#[macro_use]
extern crate std;

#[macro_use]
extern crate failure_derive;

// TODO: remove `pub` on modules which are not part of the public API
pub mod allocator;
mod error;
mod list;
pub mod message;
pub mod pd;
#[cfg(feature = "alloc")]
mod prelude;
pub mod utils;

pub use error::*;