DummyEdge

Struct DummyEdge 

Source
pub struct DummyEdge(/* private fields */);
Expand description

Simple dummy edge implementation based on Arc

The implementation is very limited but perfectly fine to test e.g. an apply cache.

Implementations§

Source§

impl DummyEdge

Source

pub fn new() -> Self

Create a new DummyEdge

Source

pub fn ref_count(&self) -> usize

Get the node’s reference count (note: Node::ref_count() is unimplemented)

Trait Implementations§

Source§

impl Debug for DummyEdge

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DummyEdge

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl DiagramRules<DummyEdge, DummyNode, ()> for DummyRules

Source§

type Cofactors<'a> = Empty<Borrowed<'a, DummyEdge>>

Iterator created by DiagramRules::cofactors()
Source§

fn reduce<M>( _manager: &M, _level: LevelNo, _children: impl IntoIterator<Item = DummyEdge>, ) -> ReducedOrNew<DummyEdge, DummyNode>
where M: Manager<Edge = DummyEdge, InnerNode = DummyNode>,

Apply the reduction rule(s) Read more
Source§

fn cofactors(_tag: (), _node: &DummyNode) -> Self::Cofactors<'_>

Get the cofactors of node assuming an incoming edge with tag Read more
Source§

fn cofactor(tag: <E as Edge>::Tag, node: &N, n: usize) -> Borrowed<'_, E>

Get the n-th cofactor of node assuming an incoming edge with tag Read more
Source§

impl Drop for DummyEdge

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl DropWith<DummyEdge> for DummyNode

Source§

fn drop_with(self, _drop_edge: impl Fn(DummyEdge))

Drop self Read more
Source§

fn drop_with_manager<M>(self, manager: &M)
where M: Manager<Edge = E>,

Drop self Read more
Source§

impl Edge for DummyEdge

Source§

type Tag = ()

Edge tag Read more
Source§

fn borrowed(&self) -> Borrowed<'_, Self>

Turn a reference into a borrowed handle
Source§

fn with_tag(&self, _tag: ()) -> Borrowed<'_, Self>

Get a version of this Edge with the given tag Read more
Source§

fn with_tag_owned(self, _tag: ()) -> Self

Get a version of this Edge with the given tag
Source§

fn tag(&self) -> Self::Tag

Get the Tag of this Edge
Source§

fn node_id(&self) -> NodeID

Returns some unique identifier for the node, e.g. for I/O purposes
Source§

impl Hash for DummyEdge

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl InnerNode<DummyEdge> for DummyNode

Source§

const ARITY: usize = 0usize

The node’s arity (upper bound)
Source§

type ChildrenIter<'a> = Empty<Borrowed<'a, DummyEdge>> where Self: 'a

Iterator over children of an inner node
Source§

fn new(_level: LevelNo, _children: impl IntoIterator<Item = DummyEdge>) -> Self

Create a new node Read more
Source§

fn check_level(&self, _check: impl FnOnce(LevelNo) -> bool) -> bool

Returns the result of check applied to the node’s level in case this node type stores levels, otherwise returns true. Read more
Source§

fn assert_level_matches(&self, _level: LevelNo)

Panics if the node types stores a level and the node’s level is not level
Source§

fn children(&self) -> Self::ChildrenIter<'_>

Get the children of this node as an iterator
Source§

fn child(&self, _n: usize) -> Borrowed<'_, DummyEdge>

Get the n-th child of this node
Source§

unsafe fn set_child(&self, _n: usize, _child: DummyEdge) -> DummyEdge

Set the n-th child of this node Read more
Source§

fn ref_count(&self) -> usize

Get the node’s reference count Read more
Source§

impl LevelView<DummyEdge, DummyNode> for DummyLevelView

Source§

type Iterator<'a> = Empty<&'a DummyEdge> where Self: 'a, DummyEdge: 'a

Iterator over Edges pointing to nodes at this level
Source§

type Taken = DummyLevelView

Taken level view, see LevelView::take()
Source§

fn len(&self) -> usize

Get the number of nodes on this level
Source§

fn level_no(&self) -> LevelNo

Get the level number of this level
Source§

fn reserve(&mut self, _additional: usize)

Reserve space for additional nodes on this level
Source§

fn get(&self, _node: &DummyNode) -> Option<&DummyEdge>

Get the edge corresponding to the given node (if present)
Source§

fn insert(&mut self, _edge: DummyEdge) -> bool

Insert the given edge into the unique table at this level, assuming that the referenced node is already stored in the associated manager. Read more
Source§

fn get_or_insert(&mut self, _node: DummyNode) -> AllocResult<DummyEdge>

Get the edge corresponding to level and node if present, or insert it. Read more
Source§

unsafe fn gc(&mut self)

Perform garbage collection on this level Read more
Source§

unsafe fn remove(&mut self, _node: &DummyNode) -> bool

Remove node from (this level of) the manager Read more
Source§

unsafe fn swap(&mut self, _other: &mut Self)

Move all nodes from this level to the other level and vice versa. Read more
Source§

fn iter(&self) -> Self::Iterator<'_>

Iterate over all the edges at this level
Source§

fn take(&mut self) -> Self::Taken

Clear this level, returning a level view containing all the previous edges.
Source§

fn is_empty(&self) -> bool

Returns true iff this level contains nodes
Source§

impl Ord for DummyEdge

Source§

fn cmp(&self, other: &Self) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for DummyEdge

Source§

fn eq(&self, other: &Self) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for DummyEdge

Source§

fn partial_cmp(&self, other: &Self) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Eq for DummyEdge

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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 T
where 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.