Expand description

Utilities to help with developing / testing tx2.

Structs

Active tracking helper for related items. This facilitates e.g. an endpoint with sub connections. The endpoint can close, closing all connections. Or, individual connections can close, without closing the endpoint.

A logic channel. Capture a handle to the logic_chan. Fill the LogicChan with async logic. Report events to the handle in the async logic. Treat the LogicChan as a stream, collecting the events.

Handle to a logic_chan instance. A clone of a LogicChanHandle is Eq to its origin. A clone of a LogicChanHandle will Hash the same as its origin.

Many tasks can await on this notify struct. They will all be notified once notify is called.

A buffer that will return to a pool after use.

Control efficient access to shared resource pool.

Synchronized droppable share-lock around internal state date.

The receiver side of a t_chan.

The sender side of a t_chan - this is cheaply clone-able.

New-type for sync ref-counted Urls to make passing around tx2 more efficient.

Functions

Construct a bound async read/write memory channel

Fill a buffer with data that is readable as latency information. Note, the minimum message size to get the timing data across is 16 bytes.

Return the duration since the time encoded in a latency info buffer. Returns a unit error if we could not parse the buffer into time data.

tokio::sync::mpsc::Sender is cheaply clonable, futures::channel::mpsc::Sender can be closed from the sender side. We want both these things. Produce a TChan - a wrapper around a tokio::sync::mpsc::channel. Provides futures::stream::Stream impl on TReceive. Allows channel close from sender side.