diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2021-04-04 13:40:09 +0200 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2021-04-04 13:40:09 +0200 |
commit | 9ac98a4fa94324ca59281fcd9de644f6ab06c26f (patch) | |
tree | e2b332b6b0f25d169ca03e4eaa406eea075f8ff1 | |
parent | c721c9ee8159fc7906eeacc766ebf065f4df6303 (diff) |
AsyncDag should store Id instead of a Node
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | src/async_dag.rs | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/async_dag.rs b/src/async_dag.rs index f882b4d..589ed9f 100644 --- a/src/async_dag.rs +++ b/src/async_dag.rs @@ -15,8 +15,9 @@ pub struct AsyncDag<Id, N, Backend> N: Node<Id = Id>, Backend: DagBackend<Id, N> { - head: N, + head: Id, backend: Backend, + _node: std::marker::PhantomData<N>, } impl<Id, N, Backend> AsyncDag<Id, N, Backend> @@ -30,8 +31,9 @@ impl<Id, N, Backend> AsyncDag<Id, N, Backend> .await? .map(|node| { AsyncDag { - head: node, - backend: backend + head: node.id().clone(), + backend: backend, + _node: std::marker::PhantomData, } }) .ok_or_else(|| anyhow!("Head not found in backend")) @@ -80,7 +82,7 @@ impl<Id, N, Backend> AsyncDag<Id, N, Backend> dag: self, backlog: { let mut v = Vec::with_capacity(2); - v.push(self.backend.get(self.head.id().clone())); + v.push(self.backend.get(self.head.clone())); v } } |