1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! Who produced a foundation: "you own what you signed".
//!
//! Ownership decides neither merging nor whether a foundation is derived. A
//! collection's carry merges every node the store holds, whoever signed the
//! foundations beneath it, into the host's own merges: join is
//! associative, commutative and idempotent, so whose tree covers a
//! foundation does not matter. A derived collection derives a foundation
//! when no admitted leaf for it is usable, whoever owns it. Ownership only
//! orders that work and scopes the per-write pass: `ensure` derives the
//! foundations its key owns, the key's own payloads are fetched while
//! another owner's are used only when here, and what the mapping cannot do
//! with another owner's foundation is not the key's failure. Those
//! decisions ask [`owns`], and nothing else, so a later notion of ownership
//! (claims, transfer) replaces this function rather than a scatter of
//! signer comparisons.
//!
//! Ownership of a node is read from the coverage index's `owners` relation:
//! the signers of the believed COMMITs and DERIVEs that produced it. A node
//! two signers produced -- the same payload committed by both -- is owned by
//! both. A join records no owner: every join the index believes is the
//! host's.
use VerifyingKey;
use crateInline;
use Coverage;
use ;
/// Whether `key` owns `node` of `collection` in this coverage observation.