1#![allow(async_fn_in_trait)]
2#![cfg_attr(not(feature = "std"), no_std)]
3
4#[cfg(feature = "alloc")]
22extern crate alloc;
23
24#[cfg(all(feature = "std", not(feature = "alloc")))]
25compile_error!("feature `std` requires feature `alloc`");
26
27pub mod codec;
28mod error;
29pub mod model;
30pub mod validate;
31
32pub mod engine;
33
34#[cfg(feature = "alloc")]
35mod owned;
36
37#[cfg(feature = "node")]
38mod node_adapter;
39
40pub use error::{EncodeError, ParseError, TextSendError};
41pub use model::{
42 ConversationKey, ExtensionOptions, FRAGMENT_BODY_MAX, FRAGMENT_COUNT_MAX, Fragment,
43 MessageSequence, MessageType, REASSEMBLED_BODY_MAX, Regarding, SenderScope, TextMessage,
44 WireRef,
45};
46
47pub use codec::{ParseInfo, encode as encode_text_message, parse as parse_text_message};
48
49#[cfg(feature = "alloc")]
50pub use owned::{OwnedExtensionOptions, OwnedTextMessage};
51
52#[cfg(feature = "node")]
53pub use node_adapter::{TextReceiveIssue, UnicastTextChatWrapper, parse_text_payload};
54
55#[cfg(all(feature = "node", feature = "software-crypto"))]
56pub use node_adapter::MulticastTextChatWrapper;
57
58pub mod text_message {
60 pub use crate::codec::{encode, parse, parse_with_info};
61}