Skip to main content

RpcHandlerStream

Trait RpcHandlerStream 

Source
pub trait RpcHandlerStream<TMReq, TMRes, TUid, TState>:
    Clone
    + Send
    + Sync
    + Sized
    + 'static {
    type Future: Future<Output = Response> + Send + 'static;

    // Required method
    fn call(self, req: Request<Body>, state: TState) -> Self::Future;
}

Required Associated Types§

Source

type Future: Future<Output = Response> + Send + 'static

Required Methods§

Source

fn call(self, req: Request<Body>, state: TState) -> Self::Future

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState> RpcHandlerStream<TMReq, TMRes, TMReq, TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1> RpcHandlerStream<TMReq, TMRes, (T1, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2> RpcHandlerStream<TMReq, TMRes, (T1, T2, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6, T7> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, T7, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, T7, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send, T7: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6, T7, T8> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, T7, T8, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send, T7: RpcFromRequestParts<TMRes, TState> + Send, T8: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6, T7, T8, T9> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, T7, T8, T9, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send, T7: RpcFromRequestParts<TMRes, TState> + Send, T8: RpcFromRequestParts<TMRes, TState> + Send, T9: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send, T7: RpcFromRequestParts<TMRes, TState> + Send, T8: RpcFromRequestParts<TMRes, TState> + Send, T9: RpcFromRequestParts<TMRes, TState> + Send, T10: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send, T7: RpcFromRequestParts<TMRes, TState> + Send, T8: RpcFromRequestParts<TMRes, TState> + Send, T9: RpcFromRequestParts<TMRes, TState> + Send, T10: RpcFromRequestParts<TMRes, TState> + Send, T11: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send, T7: RpcFromRequestParts<TMRes, TState> + Send, T8: RpcFromRequestParts<TMRes, TState> + Send, T9: RpcFromRequestParts<TMRes, TState> + Send, T10: RpcFromRequestParts<TMRes, TState> + Send, T11: RpcFromRequestParts<TMRes, TState> + Send, T12: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send, T7: RpcFromRequestParts<TMRes, TState> + Send, T8: RpcFromRequestParts<TMRes, TState> + Send, T9: RpcFromRequestParts<TMRes, TState> + Send, T10: RpcFromRequestParts<TMRes, TState> + Send, T11: RpcFromRequestParts<TMRes, TState> + Send, T12: RpcFromRequestParts<TMRes, TState> + Send, T13: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send, T7: RpcFromRequestParts<TMRes, TState> + Send, T8: RpcFromRequestParts<TMRes, TState> + Send, T9: RpcFromRequestParts<TMRes, TState> + Send, T10: RpcFromRequestParts<TMRes, TState> + Send, T11: RpcFromRequestParts<TMRes, TState> + Send, T12: RpcFromRequestParts<TMRes, TState> + Send, T13: RpcFromRequestParts<TMRes, TState> + Send, T14: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>

Source§

impl<TMReq, TMRes, TInto, TFnItem, TFnFut, TFn, TState, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> RpcHandlerStream<TMReq, TMRes, (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TMReq), TState> for TFn
where TMReq: Message + DeserializeOwned + Default + Send + 'static, TMRes: Message + Serialize + Send + 'static, TInto: RpcIntoResponse<TMRes>, TFnItem: Stream<Item = TInto> + Send + Sized + 'static, TFnFut: Future<Output = TFnItem> + Send + Sync, TFn: FnOnce(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, TMReq) -> TFnFut + Clone + Send + Sync + 'static, TState: Send + Sync + 'static, T1: RpcFromRequestParts<TMRes, TState> + Send, T2: RpcFromRequestParts<TMRes, TState> + Send, T3: RpcFromRequestParts<TMRes, TState> + Send, T4: RpcFromRequestParts<TMRes, TState> + Send, T5: RpcFromRequestParts<TMRes, TState> + Send, T6: RpcFromRequestParts<TMRes, TState> + Send, T7: RpcFromRequestParts<TMRes, TState> + Send, T8: RpcFromRequestParts<TMRes, TState> + Send, T9: RpcFromRequestParts<TMRes, TState> + Send, T10: RpcFromRequestParts<TMRes, TState> + Send, T11: RpcFromRequestParts<TMRes, TState> + Send, T12: RpcFromRequestParts<TMRes, TState> + Send, T13: RpcFromRequestParts<TMRes, TState> + Send, T14: RpcFromRequestParts<TMRes, TState> + Send, T15: RpcFromRequestParts<TMRes, TState> + Send,

Source§

type Future = Pin<Box<dyn Future<Output = Response<Body>> + Send>>