pub trait NavigationLaws<This>where
This: NavigationStateAlg + QueueCatalogAlg + QueueAppendAlg + QueueRemoveAlg + DraftStateAlg + ManagerStatusAlg + SourceRequestAlg + SubmissionAlg + MediaOptionsAlg + OutputChoiceAlg,
This::Entry: QueueEntryAlg + RequestOptionsAlg,
This::Id: Copy + Eq + Debug,{
// Required method
fn navigation_laws(&mut self) -> Result<()>;
}Expand description
Authors the collection-navigation laws.
Required Methods§
Checks that selection, expansion, and removal preserve stable queue identity.
The laws checked are:
- adding sources focuses the first new identity;
- selection advances in collection order and wraps at both ends;
- expanded details name the selected identity and move with it;
- removing the selected entry chooses a remaining neighbor;
- removing an expanded entry denotes the collection again;
- breadcrumbs are rooted at the collection and name the expanded identity.
§Errors
Returns the first violated law.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".