Skip to main content

ContractUserModerationAction

Enum ContractUserModerationAction 

Source
pub enum ContractUserModerationAction {
    Ban {
        identity_id: Identifier,
        reason: ContractModerationReason,
    },
    Unban {
        identity_id: Identifier,
    },
    Suspend {
        identity_id: Identifier,
        until: TimestampMillis,
        reason: ContractModerationReason,
    },
    Unsuspend {
        identity_id: Identifier,
    },
    Warn {
        identity_id: Identifier,
        reason: ContractModerationReason,
    },
    ClearWarnings {
        identity_id: Identifier,
    },
    DeleteDocument {
        document_type_name: String,
        document_id: Identifier,
        reason: ContractModerationReason,
    },
    RestoreDocument {
        document_type_name: String,
        document: BinaryData,
    },
    ChangeDocumentFields {
        document_type_name: String,
        document_id: Identifier,
        fields: BTreeMap<String, Value>,
        reason: ContractModerationReason,
    },
    DeleteSettledDocument {
        document_type_name: String,
        document_id: Identifier,
        reason: ContractModerationReason,
    },
    ApproveTeamAction {
        action_id: Identifier,
    },
}
Expand description

What the moderator does on the contract: to one identity, or to one document.

Variants§

§

Ban

Puts the identity on the banlist. Removes a suspension it may carry.

Fields

§identity_id: Identifier
§reason: ContractModerationReason

Why, stored with the banlist entry.

§

Unban

Takes the identity off the banlist.

Fields

§identity_id: Identifier
§

Suspend

Puts the identity on the suspension list until until (block time, milliseconds), replacing a suspension it already carries.

Fields

§identity_id: Identifier
§reason: ContractModerationReason

Why, stored with the suspension list entry.

§

Unsuspend

Takes the identity off the suspension list, lapsed or not.

Fields

§identity_id: Identifier
§

Warn

Adds a warning, with the block time and reason, to the identity’s entry on the warning list, which bars it from nothing. Refused once the entry holds SystemLimits::max_contract_warnings_per_identity warnings.

Fields

§identity_id: Identifier
§reason: ContractModerationReason

Why, stored with the warning.

§

ClearWarnings

Takes the identity off the warning list: every warning it carries goes.

Fields

§identity_id: Identifier
§

DeleteDocument

Deletes a document of a document type that sets moderatorAbilities.delete, whoever owns it, except the contract owner and the moderators. The document’s owner gets no storage refund, and a ContractDocumentRemoval stays under the contract.

Fields

§document_type_name: String
§document_id: Identifier
§reason: ContractModerationReason

Why, stored with the removal record.

§

RestoreDocument

Brings back a document a moderator deleted, as it was: the document serialized under its document type (Document::serialize), which must hash to what its removal record holds, within SystemLimits::contract_document_restore_window_ms of the removal. The document’s id, owner and content are all inside the bytes. The record stays, marked restored; the signer pays for the document’s storage, whose refund stays the owner’s.

Fields

§document_type_name: String
§document: BinaryData

The document as it was serialized when it was removed.

§

ChangeDocumentFields

Sets or removes fields of a document that only moderators write, the ones its document type lists under moderatorAbilities.changeFields, whoever owns it. Every other property, $updatedAt among them, stays as it was; $revision goes up by one, so a replace its owner built on the earlier revision is refused. The signer pays for the bytes the change adds, and a refund of the document’s storage stays the owner’s.

Fields

§document_type_name: String
§document_id: Identifier
§fields: BTreeMap<String, Value>

Each field’s new value, by its top-level property name; null removes the field. Read from an object or JSON in its canonical form (ContractUserModerationAction::canonical_field_value), so a transition built by a client and read back signs the same bytes.

§reason: ContractModerationReason

Why, checked against a seated team’s proposal like every other reason.

§

DeleteSettledDocument

Proposes the deletion of a settled document: one of a document type that says who must approve it (moderatorAbilities.deleteSettled), past the window its moderators delete in alone (moderatorAbilities.deleteWithin). Only a member of the contract’s seated team proposes, and the proposal is its approval. It is kept under the contract as a team action, by an id the proposer’s client computes (ContractTeamAction::settled_deletion_action_id), which the other members approve with Self::ApproveTeamAction. The approval that meets the rule, the leader among the approvals when the rule says so, deletes the document as a DeleteDocument would; a rule the proposer meets alone deletes it at once.

Fields

§document_type_name: String
§document_id: Identifier
§reason: ContractModerationReason

Why: stored with the proposal and with the removal record the deletion leaves.

§

ApproveTeamAction

Approves a team action another member of the contract’s seated team proposed, by its id: what it does and why are the proposal’s.

Fields

§action_id: Identifier

Implementations§

Source§

impl ContractUserModerationAction

Source

pub fn canonical_field_value(value: Value) -> Value

A field value in the one form its content has, the form clients build a change’s fields in: an integer as a U64, or an I64 when negative (U128 and I128 beyond them), 32 bytes as an Identifier and any other binary value as Bytes, maps and arrays recursively. The signed bytes carry the variant, which an object or JSON form loses (a JavaScript bigint reads back as the signed width, an identifier as plain bytes), so the fields are read back in this form and built in it.

Source

pub fn identity_id(&self) -> Option<Identifier>

The identity the action targets. None for a document deletion: it names a document, and whose it is is only known once the document is read.

Source

pub fn document(&self) -> Option<(&str, Identifier)>

The document a deletion targets, as its document type name and its id. None for an action on an identity, for a field change (Self::changed_document), for the approval of a settled document’s deletion (Self::settled_document), and for a restore, which carries the document itself: its id is only known once the bytes are decoded under the document type.

Source

pub fn settled_document( &self, ) -> Option<(&str, Identifier, &ContractModerationReason)>

The settled document whose deletion a proposal targets, as its document type name and its id, with the reason. None for every other action.

Source

pub fn approved_team_action(&self) -> Option<Identifier>

The team action an approval approves, by its id. None for every other action.

Source

pub fn restored_document(&self) -> Option<(&str, &[u8])>

The document a restore brings back, as its document type name and its serialized bytes. None for every other action.

Source

pub fn changed_document( &self, ) -> Option<(&str, Identifier, &BTreeMap<String, Value>)>

The document a field change targets, as its document type name and its id, with the fields it sets (a null value removes one). None for every other action.

Source

pub fn document_type_name(&self) -> Option<&str>

The document type name a deletion, a restore, a field change or the approval of a settled document’s deletion names, None for an action on an identity.

Source

pub fn until(&self) -> Option<TimestampMillis>

The suspension end for a suspend, None otherwise.

Source

pub fn reason(&self) -> Option<&ContractModerationReason>

The reason a ban, a suspend, a warn, a document deletion, a field change or the approval of a settled document’s deletion carries, None for an action that takes an identity off a list, and for a restore.

Source

pub fn name(&self) -> &'static str

The action’s name on the wire.

Trait Implementations§

Source§

impl<'__de, __Context> BorrowDecode<'__de, __Context> for ContractUserModerationAction

Source§

fn borrow_decode<__D: BorrowDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given BorrowDecode.
Source§

impl<'__de, __Context> BorrowDecodeUntrusted<'__de, __Context> for ContractUserModerationAction

Source§

fn borrow_decode_untrusted<__D: BorrowUntrustedDecoder<'__de, Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Borrow-decode with explicit untrusted field dispatch and resource handling.
Source§

impl Clone for ContractUserModerationAction

Source§

fn clone(&self) -> ContractUserModerationAction

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 ContractUserModerationAction

Source§

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

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

impl<__Context> Decode<__Context> for ContractUserModerationAction

Source§

fn decode<__D: Decoder<Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Attempt to decode this type with the given Decode.
Source§

impl<__Context> DecodeUntrusted<__Context> for ContractUserModerationAction

Source§

fn decode_untrusted<__D: UntrustedDecoder<Context = __Context>>( decoder: &mut __D, ) -> Result<Self, DecodeError>

Decode with explicit untrusted field dispatch and resource handling.
Source§

impl Default for ContractUserModerationAction

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ContractUserModerationAction

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 Display for ContractUserModerationAction

Source§

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

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

impl Encode for ContractUserModerationAction

Source§

fn encode<__E: Encoder>(&self, encoder: &mut __E) -> Result<(), EncodeError>

Encode a given type.
Source§

impl JsonSafeFields for ContractUserModerationAction

Available on crate feature json-conversion only.
Source§

impl PartialEq for ContractUserModerationAction

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Serialize for ContractUserModerationAction

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 StructuralPartialEq for ContractUserModerationAction

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

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> 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<T> Conv for T

§

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
§

impl<T> CostsExt for T

§

fn wrap_with_cost(self, cost: OperationCost) -> CostContext<Self>
where Self: Sized,

Wraps any value into a CostContext object with provided costs.
§

fn wrap_fn_cost( self, f: impl FnOnce(&Self) -> OperationCost, ) -> CostContext<Self>
where Self: Sized,

Wraps any value into CostContext object with costs computed using the value getting wrapped.
§

impl<'de, T> DefaultBorrowDecode<'de> for T
where T: BorrowDecode<'de, ()>,

§

fn borrow_decode<D>(decoder: &mut D) -> Result<Self, DecodeError>
where D: BorrowDecoder<'de, Context = ()>, Self: Sized,

§

impl<T> DefaultDecode for T
where T: Decode<()>,

§

fn decode<D>(decoder: &mut D) -> Result<Self, DecodeError>
where D: Decoder<Context = ()>, Self: Sized,

Source§

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

§

impl<T> FmtForward for T

§

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
§

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
§

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
§

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
§

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
§

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
§

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
§

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
§

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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, U> IntoOnNetwork<U> for T
where U: FromOnNetwork<T>,

§

fn into_on_network(self, network: Network) -> U

Calls U::from_on_network(self).

§

impl<T, U> IntoPlatformVersioned<U> for T

§

fn into_platform_versioned(self, platform_version: &PlatformVersion) -> U

Performs the conversion.
§

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

§

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
§

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
§

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
§

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
§

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
§

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
§

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
§

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

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

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<T> Tap for T

§

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
§

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
§

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
§

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
§

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
§

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
§

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
§

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
§

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
§

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
§

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
§

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
§

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
§

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
§

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
§

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
§

impl<T> TryConv for T

§

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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.
§

impl<T, U> TryFromVersioned<U> for T
where T: TryFrom<U>,

§

type Error = <T as TryFrom<U>>::Error

The type returned in the event of a conversion error.
§

fn try_from_versioned( value: U, _grove_version: &GroveVersion, ) -> Result<T, <T as TryFromVersioned<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<T, U> TryIntoPlatformVersioned<U> for T

§

type Error = <U as TryFromPlatformVersioned<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into_platform_versioned( self, platform_version: &PlatformVersion, ) -> Result<U, <U as TryFromPlatformVersioned<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoVersioned<U> for T
where U: TryFromVersioned<T>,

§

type Error = <U as TryFromVersioned<T>>::Error

The type returned in the event of a conversion error.
§

fn try_into_versioned( self, grove_version: &GroveVersion, ) -> Result<U, <U as TryFromVersioned<T>>::Error>

Performs the conversion.
§

impl<T, U> TryIntoWithBlockHashLookup<U> for T
where U: TryFromWithBlockHashLookup<T>,

§

type Error = <U as TryFromWithBlockHashLookup<T>>::Error

§

fn try_into_with_block_hash_lookup<F>( self, block_hash_lookup: F, network: Network, ) -> Result<U, <T as TryIntoWithBlockHashLookup<U>>::Error>
where F: Fn(&BlockHash) -> Option<u32>,

Converts self into T, using a block hash lookup function.
§

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