1#![deny(missing_docs, missing_debug_implementations)]
2#![cfg_attr(not(doctest), doc = include_str!("../README.md"))]
3
4pub mod util;
6
7pub use redact_composer_core::{
9 elements, error, render::Renderer, timing, timing::Timing, Composer, ComposerOptions,
10 Composition, CompositionOptions, Element, Segment, SegmentRef,
11};
12
13pub mod render {
15 pub use redact_composer_core::render::{
16 context, AdhocRenderer, RenderEngine, RenderSegment, Renderer, RendererGroup, Result,
17 };
18}
19
20#[cfg(feature = "derive")]
21#[doc(inline)]
22pub use redact_composer_derive::Element;
24
25#[cfg(feature = "midi")]
26#[doc(inline)]
27pub use redact_composer_midi as midi;
29
30#[cfg(feature = "synthesis")]
31#[doc(inline)]
32pub use redact_composer_synthesis as synthesis;
34
35#[cfg(feature = "musical")]
36#[doc(inline)]
37pub use redact_composer_musical as musical;
39
40pub fn renderers() -> crate::render::RenderEngine {
43 let mut engine = crate::render::RenderEngine::new();
44
45 #[cfg(feature = "midi")]
46 {
47 engine = engine + midi::renderers();
48 }
49
50 engine
51}