Struct Subspace :: sus :: iter :: IterRefCounter

struct IterRefCounter final
{ ... };

Reference counting outstanding iterators (and view types since they need to be able to produce iterators) in order to catch iterator invalidation and prevent them from being used afterward. Mutating the collection should check that the count is empty. This is much like a RefCell in Rust, using runtime verfication that modification does not occur while there are outstanding references.

Methods

auto count_from_owner() const -> sus::usize

Only valid to be called on owning collections such as Vec.

Resets self to no ref counts, returning a new IterRefCounter containing the old ref counts.

Only valid to be called on owning collections such as Vec.

Resets self to no pointer to a ref count, returning a new IterRefCounter containing the old pointetr.

Only valid to be called on owning collections such as Vec.

Only valid to be called on non-owning views such as Slice.

Only valid to be called on owning collections such as Vec.

Only valid to be called on non-owning views such as Slice.