[][src]Trait timely::progress::timestamp::Refines

pub trait Refines<T: Timestamp>: Timestamp {
    fn to_inner(other: T) -> Self;
fn to_outer(self) -> T;
fn summarize(path: Self::Summary) -> <T as Timestamp>::Summary; }

Conversion between pointstamp types.

This trait is central to nested scopes, for which the inner timestamp must be related to the outer timestamp. These methods define those relationships.

It would be ideal to use Rust's From and Into traits, but they seem to be messed up due to coherence: we can't implement Into because it induces a from implementation we can't control.

Required methods

fn to_inner(other: T) -> Self

Converts the outer timestamp to an inner timestamp.

fn to_outer(self) -> T

Converts the inner timestamp to an outer timestamp.

fn summarize(path: Self::Summary) -> <T as Timestamp>::Summary

Summarizes an inner path summary as an outer path summary.

It is crucial for correctness that the result of this summarization's results_in method is equivalent to |time| path.results_in(time.to_inner()).to_outer(), or at least produces times less or equal to that result.

Loading content...

Implementations on Foreign Types

impl Refines<()> for usize[src]

impl Refines<()> for u128[src]

impl Refines<()> for u64[src]

impl Refines<()> for u32[src]

impl Refines<()> for u16[src]

impl Refines<()> for u8[src]

impl Refines<()> for isize[src]

impl Refines<()> for i128[src]

impl Refines<()> for i64[src]

impl Refines<()> for i32[src]

impl Refines<()> for i16[src]

impl Refines<()> for i8[src]

impl Refines<()> for Duration[src]

Loading content...

Implementors

impl<T: Timestamp> Refines<T> for T[src]

All types "refine" themselves,

impl<TOuter: Timestamp, TInner: Timestamp> Refines<TOuter> for Product<TOuter, TInner>[src]

Loading content...