1#![doc = include_str!("../README.md")]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![cfg_attr(target_arch = "wasm32", allow(clippy::arc_with_non_send_sync))]
4
5pub(crate) mod error;
6pub(crate) mod midi;
7
8#[cfg(feature = "io")]
9pub(crate) mod client;
10#[cfg(feature = "io")]
11pub(crate) mod connection;
12#[cfg(feature = "io")]
13pub(crate) mod name;
14#[cfg(feature = "io")]
15pub(crate) mod platform;
16#[cfg(feature = "io")]
17pub(crate) mod port;
18#[cfg(feature = "io")]
19pub mod time;
20
21pub use error::Error;
22#[cfg(feature = "io")]
23pub use io::*;
24pub use midi::channel::Channel;
25pub use midi::codec_error::CodecError;
26pub use midi::data_byte::DataByte;
27pub use midi::decode::decode;
28pub use midi::decode::Decoded;
29pub use midi::message::MidiMessage;
30pub use midi::parse_error::ParseError;
31pub use midi::pitch_bend::PitchBend;
32pub use midi::raw_message::RawMidiMessage;
33pub use midi::song_position::SongPosition;
34pub use midi::sys_ex::SysEx;
35pub use midi::sys_ex_error::SysExError;
36pub use midi::value_error::ValueError;
37
38#[cfg(feature = "io")]
39mod io {
40 pub use crate::client::Client;
41 pub use crate::connection::DestinationChanges;
42 pub use crate::connection::DestinationConnection;
43 pub use crate::connection::ErrorStream;
44 pub use crate::connection::EventStream;
45 pub use crate::connection::MessageStream;
46 pub use crate::connection::SourceChanges;
47 pub use crate::connection::SourceConnection;
48 pub use crate::connection::Streams;
49 pub use crate::connection::SysexStream;
50 pub use crate::connection::Timed;
51 pub use crate::connection::VirtualDestination;
52 pub use crate::connection::VirtualSource;
53 pub use crate::error::IoError;
54 pub use crate::error::NameError;
55 pub use crate::error::PlatformError;
56 pub use crate::port::Destination;
57 pub use crate::port::DestinationChange;
58 pub use crate::port::PortId;
59 pub use crate::port::Source;
60 pub use crate::port::SourceChange;
61 pub use crate::time::Instant;
62}