Skip to main content

SpendGate

Trait SpendGate 

Source
pub trait SpendGate: Send + Sync {
    // Required methods
    fn reserve(
        &self,
        attempt: &SpendAttempt,
    ) -> Result<SpendTicket, SpendRefusal>;
    fn settle(&self, ticket: SpendTicket, charge: &Charge);
    fn release(&self, ticket: SpendTicket);
}
Expand description

A reservation must be durable before returning success. Settlement failures must retain liability. Implementations must not panic.

Required Methods§

Source

fn reserve(&self, attempt: &SpendAttempt) -> Result<SpendTicket, SpendRefusal>

Source

fn settle(&self, ticket: SpendTicket, charge: &Charge)

Source

fn release(&self, ticket: SpendTicket)

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§