Skip to main content

SurbFlowEstimator

Trait SurbFlowEstimator 

Source
pub trait SurbFlowEstimator {
    // Required methods
    fn estimate_surbs_consumed(&self) -> u64;
    fn estimate_surbs_produced(&self) -> u64;

    // Provided methods
    fn saturating_diff(&self) -> u64 { ... }
    fn estimated_surb_buffer_change<E: SurbFlowEstimator>(
        &self,
        earlier: &E,
    ) -> Option<i64> { ... }
}
Expand description

Allows estimating the flow of SURBs in a Session (production or consumption).

Required Methods§

Source

fn estimate_surbs_consumed(&self) -> u64

Estimates the number of SURBs consumed.

Value returned on each call must be equal or greater to the value returned by a previous call.

Source

fn estimate_surbs_produced(&self) -> u64

Estimates the number of SURBs produced or received.

Value returned on each call must be equal or greater to the value returned by a previous call.

Provided Methods§

Source

fn saturating_diff(&self) -> u64

Subtracts SURBs consumed from SURBs produced, saturating at zero.

Source

fn estimated_surb_buffer_change<E: SurbFlowEstimator>( &self, earlier: &E, ) -> Option<i64>

Computes the estimated change in SURB buffer.

This is done by computing the change in produced and consumed SURBs since the earlier state and then taking their difference.

A positive result is a surplus number of SURBs added to the buffer, a negative result is a loss of SURBs from the buffer. Returns None if earlier had more SURBs produced/consumed than this instance (overflow).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§