Struct concordium_std::Policy
source · [−]pub struct Policy<Attributes> {
pub identity_provider: u32,
pub created_at: Timestamp,
pub valid_to: Timestamp,
pub items: Attributes,
}
Expand description
Policy on the credential of the account.
This is one of the key features of the Concordium blockchain. Each account on the chain is backed by an identity. The policy is verified and signed by the identity provider before an account can be created on the chain.
The type is parameterized by the choice of Attributes
. These are either
borrowed or owned, in the form of an iterator over key-value pairs or a
vector of such. This flexibility is needed so that attributes can be
accessed efficiently, as well as constructed conveniently for testing.
Fields
identity_provider: u32
Identity of the identity provider who signed the identity object that this policy is derived from.
created_at: Timestamp
Timestamp at the beginning of the month when the identity object backing
this policy was created. This timestamp has very coarse granularity
in order for the identity provider to not be able to link identities
they have created with accounts that users created on the chain.
as a timestamp (which has millisecond granularity) in order to make it
easier to compare with, e.g., slot_time
.
valid_to: Timestamp
Beginning of the month where the identity is no longer valid.
items: Attributes
List of attributes, in ascending order of the tag.
Trait Implementations
sourceimpl Deserial for Policy<Vec<(AttributeTag, AttributeValue), Global>>
impl Deserial for Policy<Vec<(AttributeTag, AttributeValue), Global>>
sourcefn deserial<R>(
source: &mut R
) -> Result<Policy<Vec<(AttributeTag, AttributeValue), Global>>, ParseError> where
R: Read,
fn deserial<R>(
source: &mut R
) -> Result<Policy<Vec<(AttributeTag, AttributeValue), Global>>, ParseError> where
R: Read,
Attempt to read a structure from a given source, failing if an error occurs during deserialization or reading. Read more
sourceimpl HasPolicy for Policy<AttributesCursor>
impl HasPolicy for Policy<AttributesCursor>
type Iterator = PolicyAttributesIter
sourcefn identity_provider(&self) -> IdentityProvider
fn identity_provider(&self) -> IdentityProvider
Identity provider who signed the identity object the credential is derived from. Read more
sourcefn created_at(&self) -> Timestamp
fn created_at(&self) -> Timestamp
Beginning of the month in milliseconds since unix epoch when the credential was created. Read more
sourcefn valid_to(&self) -> Timestamp
fn valid_to(&self) -> Timestamp
Beginning of the month where the credential is no longer valid, in milliseconds since unix epoch. Read more
sourcefn next_item(&mut self, buf: &mut [u8; 31]) -> Option<(AttributeTag, u8)>
fn next_item(&mut self, buf: &mut [u8; 31]) -> Option<(AttributeTag, u8)>
Get the next attribute, storing it in the provided buffer.
The return value, if Some
, is a pair of an attribute tag, and the
length, n
of the attribute value. In this case, the attribute
value is written in the first n
bytes of the provided buffer. The
rest of the buffer is unchanged. Read more
sourcefn attributes(&self) -> Self::Iterator
fn attributes(&self) -> Self::Iterator
Get an iterator over all the attributes of the policy.
Auto Trait Implementations
impl<Attributes> RefUnwindSafe for Policy<Attributes> where
Attributes: RefUnwindSafe,
impl<Attributes> Send for Policy<Attributes> where
Attributes: Send,
impl<Attributes> Sync for Policy<Attributes> where
Attributes: Sync,
impl<Attributes> Unpin for Policy<Attributes> where
Attributes: Unpin,
impl<Attributes> UnwindSafe for Policy<Attributes> where
Attributes: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more