#![doc(
html_favicon_url = "https://raw.githubusercontent.com/plabayo/rama/main/docs/img/old_logo.png"
)]
#![doc(html_logo_url = "https://raw.githubusercontent.com/plabayo/rama/main/docs/img/old_logo.png")]
#![cfg_attr(docsrs, feature(doc_cfg))]
mod client;
mod context;
mod id_pool;
mod io;
mod macros;
mod server;
mod service;
mod types;
pub type Result<T, E = Status> = std::result::Result<T, E>;
pub use client::{Client, ClientExt, TtrpcConnector};
pub use context::metadata::Metadata;
pub use context::timeout::Timeout;
pub use context::{Context, ServerContext, get_context, get_server};
pub use server::{DEFAULT_MAX_CONCURRENT_STREAMS, ServerConnection, ServerController, TtrpcServer};
pub use types::protos::status::StatusExt;
pub use types::protos::{Code, Status};
#[doc(hidden)]
pub mod __codegen_prelude {
pub use crate::client::request_handlers::RequestHandler;
pub use crate::server::method_handlers::MethodHandler;
pub use crate::service::{
ClientStreamingMethod, DuplexStreamingMethod, ServerStreamingMethod, Service, UnaryMethod,
};
}
#[doc(hidden)]
pub mod prelude {
pub use std::future::Future;
pub use rama_core::futures::stream::Stream;
pub use crate::Result;
}
pub mod stream {
pub use rama_core::futures::StreamExt;
pub use rama_core::futures::async_stream::{stream_fn, try_stream_fn};
pub use rama_core::futures::stream::{Stream, once};
}
#[cfg(feature = "protobuf")]
#[cfg_attr(docsrs, doc(cfg(feature = "protobuf")))]
#[doc(inline)]
pub use ::rama_ttrpc_build as build;
#[cfg(feature = "protobuf")]
#[cfg_attr(docsrs, doc(cfg(feature = "protobuf")))]
pub mod protobuf {
pub mod prost {
pub use ::prost::*;
pub use ::prost_types as types;
}
}