pub struct DepMap<T: PartialEq> { /* private fields */ }
Expand description
The dependency map.
Implementations§
Source§impl<T: PartialEq> DepMap<T>
impl<T: PartialEq> DepMap<T>
Sourcepub fn process<F, I, E>(initial: Vec<T>, f: F) -> Result<Vec<T>, Error<T, E>>
pub fn process<F, I, E>(initial: Vec<T>, f: F) -> Result<Vec<T>, Error<T, E>>
Runs through a whole dependency map using a single producer function.
This is probably what one should use.
Sourcepub fn destroy(self) -> Result<Vec<T>, Self>
pub fn destroy(self) -> Result<Vec<T>, Self>
Returns the result list if the dependency map is empty.
If it is not empty, then an error is returned with the whole map.
Sourcepub fn add<F, I, E>(&mut self, f: F) -> Result<Option<Vec<&T>>, E>
pub fn add<F, I, E>(&mut self, f: F) -> Result<Option<Vec<&T>>, E>
Adds the latest target’s dependencies at the end, removing those already done and returning cyclic dependency errors (if any).
When cyclic dependency errors occur, the target is retained but its dependencies are not. Skips everything if the depmap is empty.
Auto Trait Implementations§
impl<T> Freeze for DepMap<T>
impl<T> RefUnwindSafe for DepMap<T>where
T: RefUnwindSafe,
impl<T> Send for DepMap<T>where
T: Send,
impl<T> Sync for DepMap<T>where
T: Sync,
impl<T> Unpin for DepMap<T>where
T: Unpin,
impl<T> UnwindSafe for DepMap<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more