1mod escapable;
2use std::{future::Future, pin::Pin};
3
4pub use escapable::*;
5
6mod default;
7pub use default::*;
8
9mod non_blocking_request;
10pub use non_blocking_request::*;
11
12mod non_blocking_stream;
13pub use non_blocking_stream::*;
14
15mod try_from_item;
16pub use try_from_item::*;
17
18mod fake_empty;
19pub use fake_empty::*;
20
21use prost::bytes::Bytes;
22use tonic::{Response, Status, Streaming};
23
24type Stream = Streaming<Bytes>;
25
26pub(crate) type NonBlocking =
27 EscapableTonicStream<NonBlockingWebStream<NonBlockingStreamRequest<ResponseFuture>, Stream>>;
28
29pub type XmtpStream<T> = XmtpTonicStream<crate::GrpcStream, T>;
31
32xmtp_common::if_wasm! {
33 pub type ResponseFuture = Pin<Box<dyn Future<Output = Result<Response<Stream>, Status>>>>;
34}
35
36xmtp_common::if_native! {
37 pub type ResponseFuture = Pin<Box<dyn Future<Output = Result<Response<Stream>, Status>> + Send>>;
38}