1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
mod unstable;
use super::SparseSet;
pub use unstable::*;
/// Trait used to sort storage(s).
pub trait IntoSortable {
type IntoSortable;
/// Doesn't sort the view(s) until an algorithm is chosen, `unstable` for example.
///
/// ### Example:
/// ```
/// use shipyard::{EntitiesViewMut, IntoSortable, ViewMut, World};
///
/// let world = World::new();
///
/// world.run(|mut entities: EntitiesViewMut, mut usizes: ViewMut<usize>| {
/// entities.add_entity(&mut usizes, 1);
/// entities.add_entity(&mut usizes, 0);
/// usizes.sort().unstable(Ord::cmp);
/// });
/// ```
fn sort(self) -> Self::IntoSortable;
}