Enum citadel::model::PolicyType[][src]

#[non_exhaustive]pub enum PolicyType {
    Current,
    Instant,
    Saving,
    Loan,
    Staking,
    Trading,
    Storage,
    Computing,
}

Defines a type of a wallet contract basing on the banking use case, abstracting the underlying technology(ies) into specific contract details

Variants (Non-exhaustive)

Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Current

Accounts that allow spending with a simple procedure (like single signature). However the actual transfer may take some time (like mining onchain transaction). Analogous to “paying with gold coins” or “doing a SWFIT/SEPA transfer”. May require use of hardware wallet devices

Instant

Instant payment accounts allowing simple & fasm payments with strict limits. Must not require any hardware security device for processing. The main technology is the Lightning network, with different forms of fast payment channels on top of it (currently only BOLT-3-based). Analogous to credit cards payments and instant payment systems (PayPal, QIWI etc).

Saving

Accounts with complex spending processes, requiring hardware devices, multiple signatures, timelocks and other forms of limitations.

Loan

Future forms of smart-contracts for borrowing money and assets. Will probably require some advanced smart contract technology, like new forms of scriptless scripts and/or RGB schemata + simplicity scripting.

Staking

May also be used for providing funds to liquidity pools etc.

Trading
Storage
Computing

Trait Implementations

impl Clone for PolicyType[src]

impl Debug for PolicyType[src]

impl<'de> Deserialize<'de> for PolicyType[src]

impl Display for PolicyType[src]

impl Eq for PolicyType[src]

impl Hash for PolicyType[src]

impl Ord for PolicyType[src]

impl PartialEq<PolicyType> for PolicyType[src]

impl PartialOrd<PolicyType> for PolicyType[src]

impl Serialize for PolicyType[src]

impl StructuralEq for PolicyType[src]

impl StructuralPartialEq for PolicyType[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

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

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

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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