/// You should implement this trait using all default methods for all code that isn't test code.
/// Return a ShouldExpire reflecting an expiration that is known to be happening at `expiration`.
/// Return a ShouldExpire reflecting an expiration that is known to be no sooner than `expiration`,
type PendResult<B, R> = Result<<<B as AbstractTunnelBuilder<R>>::Tunnel as AbstractTunnel>::Id>;
fn find_open(&mut self, usage: &TargetTunnelUsage) -> Option<Vec<&mut OpenEntry<B::Tunnel>>> {
/// Returns None if the circuit is expired; otherwise returns the next time at which the circuit may expire.
// TODO: It would be good to do away with this function entirely, and have a smarter expiration
// function. This one only exists because there is not an "expire some circuits" background task.