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);

    // Provided method
    fn reserve_acquisition(
        &self,
        _attempt: &AcquisitionSpendAttempt,
    ) -> Result<SpendTicket, SpendRefusal> { ... }
}
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)

Provided Methods§

Source

fn reserve_acquisition( &self, _attempt: &AcquisitionSpendAttempt, ) -> Result<SpendTicket, SpendRefusal>

Source costs are monetary units. Older gates refuse source attempts.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§