Crate ipfi

source ·

Modules

  • A blocking version of IPFI. This supports extreme concurrency, however, and may be preferred in many cases.

Structs

  • A handle representing the reader/writer threads started by Wire::start.
  • A handle for waiting on the return values of remote procedure calls. This is necessary because calling a remote procedure requires .flush() to be called, so waiting inside a function like .call() would make very little sense.
  • A call index. This is its own type to avoid confusion.
  • A wrapper that allows receiving message chunks in real-time. Be mindful that, once one of these is created, all chunks that arrive for the message it tracks will be immediately sent to it, thereby preventing any calls to .get() on the Interface from accessing non-empty data.
  • An inter-process communication (IPC) interface based on the arbitrary reception of bytes.
  • A procedure index. This is its own type to avoid confusion.
  • A mechanism to interact ergonomically with an interface using synchronous Rust I/O buffers.
  • An identifier for a wire.

Enums

  • The status each call/response message holds about how it is terminating its series of messages. Generally, this would be a boolean (Terminator::Complete or Terminator::None), but Terminator::Chunk is introduced to allow for procedures that stream discrete values, which must later be deserialised, which requires knowing how many of them there are. Explicit chunk marking allows for both flexible operation and simultaneously clear typing.

Functions

  • Signals the termination of this program to any others that may be holding wires to it.

Type Aliases