pub struct AccountabilityLedger { /* private fields */ }Expand description
An append-only, tamper-evident ledger of accountability records.
Implementations§
Source§impl AccountabilityLedger
impl AccountabilityLedger
pub fn new() -> Self
pub fn entries(&self) -> &[LedgerEntry]
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
Sourcepub fn head_hash(&self) -> String
pub fn head_hash(&self) -> String
The hash the next appended entry will chain to (the last entry’s hash, or genesis).
Sourcepub fn append(
&mut self,
kind: impl Into<String>,
payload_json: impl Into<String>,
signer: &SigningKey,
time_unix: u64,
) -> &LedgerEntry
pub fn append( &mut self, kind: impl Into<String>, payload_json: impl Into<String>, signer: &SigningKey, time_unix: u64, ) -> &LedgerEntry
Append a record, signed by signer and chained to the current head. Returns the new entry.
Sourcepub fn verify(&self) -> Result<(), LedgerTamper>
pub fn verify(&self) -> Result<(), LedgerTamper>
Verify the whole chain: every entry’s content hash recomputes, chains to the previous, its sequence is
in order, and its signature verifies. Returns the first tamper found, or Ok(()).
Sourcepub fn of_kind<'a>(&'a self, kind: &str) -> Vec<&'a LedgerEntry>
pub fn of_kind<'a>(&'a self, kind: &str) -> Vec<&'a LedgerEntry>
Entries of a given kind (e.g. all "conduct"), preserving order.
Trait Implementations§
Source§impl Clone for AccountabilityLedger
impl Clone for AccountabilityLedger
Source§fn clone(&self) -> AccountabilityLedger
fn clone(&self) -> AccountabilityLedger
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for AccountabilityLedger
impl Debug for AccountabilityLedger
Source§impl Default for AccountabilityLedger
impl Default for AccountabilityLedger
Source§fn default() -> AccountabilityLedger
fn default() -> AccountabilityLedger
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for AccountabilityLedger
impl<'de> Deserialize<'de> for AccountabilityLedger
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for AccountabilityLedger
impl PartialEq for AccountabilityLedger
Source§fn eq(&self, other: &AccountabilityLedger) -> bool
fn eq(&self, other: &AccountabilityLedger) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for AccountabilityLedger
impl Serialize for AccountabilityLedger
impl Eq for AccountabilityLedger
impl StructuralPartialEq for AccountabilityLedger
Auto Trait Implementations§
impl Freeze for AccountabilityLedger
impl RefUnwindSafe for AccountabilityLedger
impl Send for AccountabilityLedger
impl Sync for AccountabilityLedger
impl Unpin for AccountabilityLedger
impl UnsafeUnpin for AccountabilityLedger
impl UnwindSafe for AccountabilityLedger
Blanket Implementations§
§impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
impl<S, A> Aggregate<Result<S, Error>> for Awhere
A: Aggregate<S>,
Aggregate shares in an MPC protocol.
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
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 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>
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§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.