Skip to main content

AccountSummary

Struct AccountSummary 

Source
pub struct AccountSummary {
    pub did: String,
    pub account_id: String,
    pub handle: Option<String>,
    pub kind: AccountKind,
    pub created_at: String,
    pub state: AccountState,
    pub locks: Locks,
    pub holds: Holds,
    pub parent: Option<String>,
    pub operator: String,
    pub proof: AccountProof,
    pub edge: EdgeState,
}
Expand description

One entry in the listAccounts response.

This server’s account of its own contents, which is the most a listing can ever be. A reader deriving “which agents does this operator have” from it gets a lower bound: a server can omit an entry, and nothing in the operator’s repository would contradict it, because an operator writes one bot.did.operator record per server and never one per agent. What a server cannot do is inflate the count — a DID it invents has no record behind it in the operator’s repository — so a reader that verifies each entry rather than trusting the list is safe in one direction and short in the other. See docs/operator-verification.md.

Fields§

§did: String

The account’s DID.

§account_id: String

The agent the account was minted for.

§handle: Option<String>

The handle the account answers to, when it has one.

The name is the interesting half of an account for anyone reading a listing: basalt-otter.agents.example is a thing a person can hold in their head and a3f9c1.agents.example is not. It is reported as the server stored it, zone and all, so that a reader can check it lands under the zone the server admits to minting rather than trusting the label alone.

Absent only for an account provisioned before this deployment issued handles. An account whose handle is its own hostname reports that hostname: it is what the account actually answers to, and saying nothing would be a different claim.

§kind: AccountKind

What kind of account it is.

§created_at: String

When the account was provisioned, RFC 3339.

§state: AccountState

Whether the data exists; see AccountState.

§locks: Locks

Every lock hung on the account, each with the party that hung it.

The one surface that can say an account is frozen at all: #account cannot, because the lexicon has no wire concept of “active but not writable”. See docs/conformance.md.

§holds: Holds

Every hold set on the account.

§parent: Option<String>

The hosted account that created this one; absent for a root, whose operator is the deployment’s. See didbot_pds::HostedAccount::parent.

§operator: String

The human who answers for this account: the same DID its registration names, at any depth. Self::parent is the next hop of the walk in docs/ownership.md.

§proof: AccountProof

What a stranger can authenticate as this account with.

§edge: EdgeState

Whether the edge above this account still stands. See EdgeState.

Implementations§

Source§

impl AccountSummary

Source

pub fn from_account( account: &HostedAccount, operator: &str, credentials: &[Credential], ) -> Self

Summarizes a stored account, with operator as the DID this deployment’s operator holds.

A timestamp that will not format is reported as an empty string rather than failing the whole listing. Rfc3339 only rejects years outside 0000..=9999, which no clock this reads will produce.

Trait Implementations§

Source§

impl Clone for AccountSummary

Source§

fn clone(&self) -> AccountSummary

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 AccountSummary

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for AccountSummary

Source§

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 AccountSummary

Source§

fn eq(&self, other: &AccountSummary) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for AccountSummary

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Eq for AccountSummary

Source§

impl StructuralPartialEq for AccountSummary

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
§

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

§

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

§

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

§

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<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
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

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
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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

§

fn from_ref(input: &T) -> T

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

impl<T> Instrument for T

§

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

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

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
§

impl<T> PolicyExt for T
where T: ?Sized,

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: 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
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: 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> 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.
§

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

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

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
§

fn with_current_subscriber(self) -> WithDispatch<Self>

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

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

§

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

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

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