pub type PutPort<T> = Port<dyn PutIf<T>>;
A port that puts items into something it does not own.
pub struct PutPort<T> { /* private fields */ }
Block until the far end has room, then hand the item over.
Hand the item over only if it fits right now.