Skip to main content

QueueLaws

Trait QueueLaws 

Source
pub trait QueueLaws<This>{
    // Required methods
    fn queue_laws(&mut self) -> Result<()>;
    fn law_entry(&self, id: This::Id) -> Result<&This::Entry>;
    fn law_transferred(&self, id: This::Id) -> Option<u64>;
}
Expand description

Authors the keyed-transfer laws.

Required Methods§

Source

fn queue_laws(&mut self) -> Result<()>

Checks that observations are keyed and that derived progress follows only from them.

The laws checked are:

  1. an observation updates exactly the identity it addresses;
  2. byte rate, remaining time, and completed share are derived from bytes and elapsed time;
  3. full byte progress denotes publication, while only terminal success denotes completion;
  4. the submitted source is the label until extraction supplies a title.
§Errors

Returns the first violated law.

Source

fn law_entry(&self, id: This::Id) -> Result<&This::Entry>

Observes one entry by stable identity.

§Errors

Returns a violation when the collection holds no such identity.

Source

fn law_transferred(&self, id: This::Id) -> Option<u64>

Observes the bytes one identity has retrieved, when it names an entry.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§