Skip to main content

WotService

Struct WotService 

Source
pub struct WotService { /* private fields */ }
Expand description

Indexing-layer service for trusted metadata and local governance records.

Implementations§

Source§

impl WotService

Source

pub fn new(indexing: &IndexingService, policy: TrustPolicy) -> Self

Create a Web-of-Trust service using an existing indexing service.

Source

pub fn with_database(database: IndexingDatabase, policy: TrustPolicy) -> Self

Create a service backed by an indexing database.

Source

pub fn in_memory(policy: TrustPolicy) -> Result<Self>

Create an isolated in-memory Web-of-Trust service.

§Errors

Returns an error if SQLite cannot initialize.

Source

pub const fn database(&self) -> &IndexingDatabase

Source

pub fn policy(&self) -> Result<TrustPolicy>

Return a copy of the current local trust policy.

§Errors

Returns an error if policy state is poisoned.

Source

pub fn trust_author(&self, author: &VerifyingKey) -> Result<()>

Add a local trusted root.

§Errors

Returns an error if policy state is poisoned.

Source

pub fn add_delegation(&self, delegation: TrustDelegation) -> Result<bool>

Add a signed delegation to the local policy.

§Errors

Returns an error if the delegation is invalid or its issuer is not locally trusted.

Source

pub fn add_delegation_at( &self, delegation: TrustDelegation, now: u64, ) -> Result<bool>

Add a signed delegation using an explicit validation time.

§Errors

Returns an error if the delegation is invalid or its issuer is not locally trusted.

Source

pub fn revoke_delegation( &self, delegator: &str, delegate: &str, scope: Option<&Hash>, ) -> Result<bool>

Revoke a delegation matching the delegate, scope, and delegator.

Returns true if any delegation was marked revoked.

§Errors

Returns an error if the policy lock is poisoned.

Source

pub fn revoke_delegation_at( &self, delegator: &str, delegate: &str, scope: Option<&Hash>, at: u64, ) -> Result<bool>

Revoke a delegation using an explicit revocation time.

Returns true if any delegation was marked revoked.

§Errors

Returns an error if the policy lock is poisoned.

Source

pub fn apply_provider_trust(&self, record: ProviderTrustRecord) -> Result<bool>

Apply a signed manual provider trust record from a trusted issuer.

A provider may always publish a signed self-distrust, which allows a compromised or retiring provider to withdraw its own availability.

§Errors

Returns an error when the record is invalid or its issuer is untrusted.

Source

pub fn evaluate_provider_trust( &self, provider: PublicKey, hash: Option<&Hash>, now: u64, ) -> Result<ProviderTrustDecision>

Evaluate the newest applicable provider trust records.

§Errors

Returns an error when the WoT state lock is poisoned.

Source

pub fn evaluate_provider_trust_for_hash( &self, provider: PublicKey, hash: Hash, now: u64, ) -> Result<ProviderTrustDecision>

Evaluate a provider trust decision for a concrete content hash.

§Errors

Returns an error when the WoT state lock is poisoned.

Source

pub fn provider_trust_records( &self, provider: PublicKey, ) -> Result<Vec<ProviderTrustRecord>>

Return all records for a provider, newest first.

§Errors

Returns an error when the WoT state lock is poisoned.

Source

pub fn append_metadata(&self, entry: &MetadataEntry) -> Result<bool>

Append metadata after signature and local trust checks.

§Errors

Returns an error if the metadata is not signed, trusted, or the content has been self-revoked.

Source

pub fn search_metadata( &self, query: &str, limit: usize, ) -> Result<Vec<MetadataEntry>>

Search trusted metadata while applying local revocation and moderation.

§Errors

Returns an error if the query or index is invalid.

Source

pub fn search(&self, query: &str, limit: usize) -> Result<Vec<MetadataEntry>>

Alias for Self::search_metadata.

§Errors

Returns an error if the query or index is invalid.

Source

pub fn revoke_self(&self, record: RevocationRecord) -> Result<bool>

Accept a publisher’s self-revocation.

§Errors

Returns an error if the signature is invalid or an older sequence was already recorded.

Source

pub fn is_revoked(&self, content: &Hash) -> Result<bool>

Return whether a content hash has a valid self-revocation.

§Errors

Returns an error if state is poisoned.

Source

pub fn apply_moderation(&self, record: ModerationRecord) -> Result<bool>

Accept a trusted moderation record.

§Errors

Returns an error if the signature is invalid, the moderator is not trusted, or an older sequence was already recorded.

Source

pub fn moderation(&self, content: &Hash) -> Result<Option<ModerationRecord>>

Return the latest moderation record for a content hash.

§Errors

Returns an error if state is poisoned.

Source

pub fn moderation_records( &self, content: &Hash, ) -> Result<Vec<ModerationRecord>>

Return all moderation records for a content hash, newest first.

§Errors

Returns an error if state is poisoned.

Source

pub fn list_moderation( &self, content: Option<&Hash>, ) -> Result<Vec<ModerationRecord>>

List all moderation records, optionally restricted to one content hash.

§Errors

Returns an error if state is poisoned.

Source

pub fn moderation_decision( &self, context: &ModerationContext, ) -> Result<ModerationAction>

Evaluate the latest applicable moderation decision for a context.

More recent decisions win; when sequence numbers tie, the more specific scope wins.

§Errors

Returns an error if state is poisoned.

Source

pub fn evaluate_moderation( &self, context: &ModerationContext, ) -> Result<ModerationAction>

Alias for Self::moderation_decision.

§Errors

Returns an error if state is poisoned.

Source

pub fn append_attestation(&self, attestation: Attestation) -> Result<bool>

Store an attestation after cryptographic and local trust checks.

§Errors

Returns an error if the attestation is invalid or its issuer is not trusted.

Source

pub fn verify_attestation(&self, attestation: &Attestation) -> Result<()>

Verify an attestation’s cryptographic signature without applying local trust policy.

§Errors

Returns an error if the attestation is malformed or tampered with.

Trait Implementations§

Source§

impl Clone for WotService

Source§

fn clone(&self) -> WotService

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for WotService

Source§

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

Formats the value using the given formatter. Read more

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<'a, T, E> AsTaggedExplicit<'a, E> for T
where T: 'a,

Source§

fn explicit(self, class: Class, tag: u32) -> TaggedParser<'a, Explicit, Self, E>

Source§

impl<'a, T, E> AsTaggedImplicit<'a, E> for T
where T: 'a,

Source§

fn implicit( self, class: Class, constructed: bool, tag: u32, ) -> TaggedParser<'a, Implicit, Self, E>

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more