pub struct EpochNodeWeightArray<WeightType> { /* private fields */ }
Expand description

An epoched node weight array that can be cleared in O(1) most of the times. Only if the epoch in the epoch array overflows, clearing takes linear time.

Trait Implementations§

source§

impl<WeightType: DijkstraWeight + Copy> NodeWeightArray<WeightType> for EpochNodeWeightArray<WeightType>

source§

fn new(len: usize) -> Self

Create a new NodeWeightArray of given size.
source§

fn get(&self, node_index: usize) -> WeightType

Returns the current weight of the given node index.
source§

fn get_mut<'this: 'result, 'result>( &'this mut self, node_index: usize ) -> &'result mut WeightType

Returns the current weight of the given node index as mutable reference.
source§

fn set(&mut self, node_index: usize, weight: WeightType)

Sets the current weight of the given node index.
source§

fn clear(&mut self)

Resets the weights of all node indices to infinity
source§

fn size(&self) -> usize

Returns the number of nodes whose weight is stored in the data structure.

Auto Trait Implementations§

§

impl<WeightType> RefUnwindSafe for EpochNodeWeightArray<WeightType>where WeightType: RefUnwindSafe,

§

impl<WeightType> Send for EpochNodeWeightArray<WeightType>where WeightType: Send,

§

impl<WeightType> Sync for EpochNodeWeightArray<WeightType>where WeightType: Sync,

§

impl<WeightType> Unpin for EpochNodeWeightArray<WeightType>where WeightType: Unpin,

§

impl<WeightType> UnwindSafe for EpochNodeWeightArray<WeightType>where WeightType: UnwindSafe,

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

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

§

fn vzip(self) -> V