mod.rs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. use futures::channel::oneshot::Receiver;
  2. use crate::{ReplyMessage, RequestMessage, Result, RpcOnWire};
  3. pub(crate) mod junk_server;
  4. pub(crate) fn make_aborting_rpc<C: Into<String>, S: Into<String>>(
  5. client: C,
  6. server: S,
  7. ) -> (RpcOnWire, Receiver<Result<ReplyMessage>>) {
  8. make_rpc(client, server, junk_server::JunkRpcs::Aborting, &[])
  9. }
  10. pub(crate) fn make_echo_rpc<C: Into<String>, S: Into<String>>(
  11. client: C,
  12. server: S,
  13. data: &[u8],
  14. ) -> (RpcOnWire, Receiver<Result<ReplyMessage>>) {
  15. make_rpc(client, server, junk_server::JunkRpcs::Echo, data)
  16. }
  17. pub(crate) fn make_rpc<C: Into<String>, S: Into<String>>(
  18. client: C,
  19. server: S,
  20. service_method: junk_server::JunkRpcs,
  21. data: &[u8],
  22. ) -> (RpcOnWire, Receiver<Result<ReplyMessage>>) {
  23. let (tx, rx) = futures::channel::oneshot::channel();
  24. (
  25. RpcOnWire {
  26. client: client.into(),
  27. server: server.into(),
  28. service_method: service_method.name(),
  29. request: RequestMessage::copy_from_slice(data),
  30. reply_channel: tx,
  31. #[cfg(feature = "tracing")]
  32. trace: crate::tracing::TraceHolder::make(),
  33. },
  34. rx,
  35. )
  36. }