[][src]Struct vrp_core::construction::constraints::ConcreteJobContextTransition

pub struct ConcreteJobContextTransition<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> where
    FRemoveRequired: Fn(&SolutionContext, &Job) -> bool,
    FPromoteRequired: Fn(&SolutionContext, &Job) -> bool,
    FRemoveLocked: Fn(&SolutionContext, &Job) -> bool,
    FPromoteLocked: Fn(&SolutionContext, &Job) -> bool
{ pub remove_required: FRemoveRequired, pub promote_required: FPromoteRequired, pub remove_locked: FRemoveLocked, pub promote_locked: FPromoteLocked, }

A concrete implementation of JobContextTransition which allows to use lambdas.

Fields

remove_required: FRemoveRequired

A function which removes job from required list.

promote_required: FPromoteRequired

A function which promotes job to required jobs.

remove_locked: FRemoveLocked

A function which removes job from locked list.

promote_locked: FPromoteLocked

A function which promotes job to locked jobs.

Trait Implementations

impl<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> JobContextTransition for ConcreteJobContextTransition<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> where
    FRemoveRequired: Fn(&SolutionContext, &Job) -> bool,
    FPromoteRequired: Fn(&SolutionContext, &Job) -> bool,
    FRemoveLocked: Fn(&SolutionContext, &Job) -> bool,
    FPromoteLocked: Fn(&SolutionContext, &Job) -> bool
[src]

Auto Trait Implementations

impl<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> RefUnwindSafe for ConcreteJobContextTransition<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> where
    FPromoteLocked: RefUnwindSafe,
    FPromoteRequired: RefUnwindSafe,
    FRemoveLocked: RefUnwindSafe,
    FRemoveRequired: RefUnwindSafe

impl<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> Send for ConcreteJobContextTransition<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> where
    FPromoteLocked: Send,
    FPromoteRequired: Send,
    FRemoveLocked: Send,
    FRemoveRequired: Send

impl<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> Sync for ConcreteJobContextTransition<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> where
    FPromoteLocked: Sync,
    FPromoteRequired: Sync,
    FRemoveLocked: Sync,
    FRemoveRequired: Sync

impl<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> Unpin for ConcreteJobContextTransition<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> where
    FPromoteLocked: Unpin,
    FPromoteRequired: Unpin,
    FRemoveLocked: Unpin,
    FRemoveRequired: Unpin

impl<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> UnwindSafe for ConcreteJobContextTransition<FRemoveRequired, FPromoteRequired, FRemoveLocked, FPromoteLocked> where
    FPromoteLocked: UnwindSafe,
    FPromoteRequired: UnwindSafe,
    FRemoveLocked: UnwindSafe,
    FRemoveRequired: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,