pub struct LedgerLineage { /* private fields */ }Expand description
The lineage a served ledger hands on to the findings and facts restored
from it (ctx_handoff pull). It exists for every ledger that was checked
at creation, has at least one bound part and was just served — also one
with an originless part: the marker decides whether the ledger as a whole
may register a lineage, not whether a restored part gets a binding.
Implementations§
Source§impl LedgerLineage
impl LedgerLineage
Sourcepub fn carry(
&self,
part: &LedgerPart<'_>,
index: usize,
derived: &Item<'_>,
) -> Result<Option<Carried>, Withheld>
pub fn carry( &self, part: &LedgerPart<'_>, index: usize, derived: &Item<'_>, ) -> Result<Option<Carried>, Withheld>
The binding of part — the element at index of its own list in the
stored ledger — restored as derived.
Ok(None) — the item is restored originless — for an element that is
not recorded as bound at that place: it had no binding at creation. A
part is never upgraded because the ledger has bound siblings, nor
because another element has the same text.
Err (store.ledger_authority_inconsistent) for an element that IS
recorded at that place while part does not have the recorded
digest: a known-bound element is refused, never restored unbound.
A recorded element is bound to the ledger’s joined source set
(archive::bindings::carry_from). This over-approximates per item:
the ledger keeps no per-item source lists, so the item is bound to
ALL files of the ledger, not only to those of the finding or fact it
once was. More sources have to hold, never fewer; the cost is that a
restored item is withheld when an unrelated file of the same ledger
changes.
Auto Trait Implementations§
impl Forget for LedgerLineage
impl Freeze for LedgerLineage
impl Move for LedgerLineage
impl RefUnwindSafe for LedgerLineage
impl Send for LedgerLineage
impl Sync for LedgerLineage
impl Unpin for LedgerLineage
impl UnsafeUnpin for LedgerLineage
impl UnwindSafe for LedgerLineage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
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