pub struct PostgresProvider { /* private fields */ }Expand description
PostgreSQL-based provider for Duroxide durable orchestrations.
Implements the Provider and ProviderAdmin traits from Duroxide,
storing orchestration state, history, and work queues in PostgreSQL.
§Example
use duroxide_pg_opt::PostgresProvider;
// Connect using DATABASE_URL or explicit connection string
let provider = PostgresProvider::new("postgres://localhost/mydb").await?;
// Or use a custom schema for isolation
let provider = PostgresProvider::new_with_schema(
"postgres://localhost/mydb",
Some("my_app"),
).await?;Implementations§
Source§impl PostgresProvider
impl PostgresProvider
Sourcepub async fn new(database_url: &str) -> Result<Self>
pub async fn new(database_url: &str) -> Result<Self>
Create a new provider with default settings (long-poll enabled).
Sourcepub async fn new_with_schema(
database_url: &str,
schema_name: Option<&str>,
) -> Result<Self>
pub async fn new_with_schema( database_url: &str, schema_name: Option<&str>, ) -> Result<Self>
Create a new provider with a custom schema.
Sourcepub async fn new_with_options(
database_url: &str,
schema_name: Option<&str>,
config: LongPollConfig,
) -> Result<Self>
pub async fn new_with_options( database_url: &str, schema_name: Option<&str>, config: LongPollConfig, ) -> Result<Self>
Create a new provider with full configuration options.
Sourcepub async fn new_with_fault_injection(
database_url: &str,
schema_name: Option<&str>,
config: LongPollConfig,
fault_injector: Arc<FaultInjector>,
) -> Result<Self>
pub async fn new_with_fault_injection( database_url: &str, schema_name: Option<&str>, config: LongPollConfig, fault_injector: Arc<FaultInjector>, ) -> Result<Self>
Create a new provider with fault injection for testing.
This constructor allows injecting faults to test resilience scenarios. The FaultInjector can be used to disable the notifier thread.
pub async fn initialize_schema(&self) -> Result<()>
Sourcepub fn schema_name(&self) -> &str
pub fn schema_name(&self) -> &str
Get the schema name (for testing)
Sourcepub async fn cleanup_schema(&self) -> Result<()>
pub async fn cleanup_schema(&self) -> Result<()>
Clean up schema after tests (drops all tables and optionally the schema)
SAFETY: Never drops the “public” schema itself, only tables within it. Only drops the schema if it’s a custom schema (not “public”).
Trait Implementations§
Source§impl Drop for PostgresProvider
impl Drop for PostgresProvider
Source§impl Provider for PostgresProvider
impl Provider for PostgresProvider
Source§fn fetch_orchestration_item<'life0, 'life1, 'async_trait>(
&'life0 self,
lock_timeout: Duration,
poll_timeout: Duration,
filter: Option<&'life1 DispatcherCapabilityFilter>,
) -> Pin<Box<dyn Future<Output = Result<Option<(OrchestrationItem, String, u32)>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn fetch_orchestration_item<'life0, 'life1, 'async_trait>(
&'life0 self,
lock_timeout: Duration,
poll_timeout: Duration,
filter: Option<&'life1 DispatcherCapabilityFilter>,
) -> Pin<Box<dyn Future<Output = Result<Option<(OrchestrationItem, String, u32)>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn ack_orchestration_item<'life0, 'life1, 'async_trait>(
&'life0 self,
lock_token: &'life1 str,
execution_id: u64,
history_delta: Vec<Event>,
worker_items: Vec<WorkItem>,
orchestrator_items: Vec<WorkItem>,
metadata: ExecutionMetadata,
cancelled_activities: Vec<ScheduledActivityIdentifier>,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn ack_orchestration_item<'life0, 'life1, 'async_trait>(
&'life0 self,
lock_token: &'life1 str,
execution_id: u64,
history_delta: Vec<Event>,
worker_items: Vec<WorkItem>,
orchestrator_items: Vec<WorkItem>,
metadata: ExecutionMetadata,
cancelled_activities: Vec<ScheduledActivityIdentifier>,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn abandon_orchestration_item<'life0, 'life1, 'async_trait>(
&'life0 self,
lock_token: &'life1 str,
delay: Option<Duration>,
ignore_attempt: bool,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn abandon_orchestration_item<'life0, 'life1, 'async_trait>(
&'life0 self,
lock_token: &'life1 str,
delay: Option<Duration>,
ignore_attempt: bool,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn append_with_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
execution_id: u64,
new_events: Vec<Event>,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn append_with_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
execution_id: u64,
new_events: Vec<Event>,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn enqueue_for_worker<'life0, 'async_trait>(
&'life0 self,
item: WorkItem,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn enqueue_for_worker<'life0, 'async_trait>(
&'life0 self,
item: WorkItem,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn fetch_work_item<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
lock_timeout: Duration,
poll_timeout: Duration,
session: Option<&'life1 SessionFetchConfig>,
tag_filter: &'life2 TagFilter,
) -> Pin<Box<dyn Future<Output = Result<Option<(WorkItem, String, u32)>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fetch_work_item<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
lock_timeout: Duration,
poll_timeout: Duration,
session: Option<&'life1 SessionFetchConfig>,
tag_filter: &'life2 TagFilter,
) -> Pin<Box<dyn Future<Output = Result<Option<(WorkItem, String, u32)>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn ack_work_item<'life0, 'life1, 'async_trait>(
&'life0 self,
token: &'life1 str,
completion: Option<WorkItem>,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn ack_work_item<'life0, 'life1, 'async_trait>(
&'life0 self,
token: &'life1 str,
completion: Option<WorkItem>,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn renew_work_item_lock<'life0, 'life1, 'async_trait>(
&'life0 self,
token: &'life1 str,
extend_for: Duration,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn renew_work_item_lock<'life0, 'life1, 'async_trait>(
&'life0 self,
token: &'life1 str,
extend_for: Duration,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn abandon_work_item<'life0, 'life1, 'async_trait>(
&'life0 self,
token: &'life1 str,
delay: Option<Duration>,
ignore_attempt: bool,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn abandon_work_item<'life0, 'life1, 'async_trait>(
&'life0 self,
token: &'life1 str,
delay: Option<Duration>,
ignore_attempt: bool,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn renew_orchestration_item_lock<'life0, 'life1, 'async_trait>(
&'life0 self,
token: &'life1 str,
extend_for: Duration,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn renew_orchestration_item_lock<'life0, 'life1, 'async_trait>(
&'life0 self,
token: &'life1 str,
extend_for: Duration,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn enqueue_for_orchestrator<'life0, 'async_trait>(
&'life0 self,
item: WorkItem,
delay: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn enqueue_for_orchestrator<'life0, 'async_trait>(
&'life0 self,
item: WorkItem,
delay: Option<Duration>,
) -> Pin<Box<dyn Future<Output = Result<(), ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn read_with_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
execution_id: u64,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_with_execution<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
execution_id: u64,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn renew_session_lock<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
owner_ids: &'life1 [&'life2 str],
extend_for: Duration,
idle_timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<usize, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn renew_session_lock<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
owner_ids: &'life1 [&'life2 str],
extend_for: Duration,
idle_timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<usize, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn cleanup_orphaned_sessions<'life0, 'async_trait>(
&'life0 self,
_idle_timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<usize, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn cleanup_orphaned_sessions<'life0, 'async_trait>(
&'life0 self,
_idle_timeout: Duration,
) -> Pin<Box<dyn Future<Output = Result<usize, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn as_management_capability(&self) -> Option<&dyn ProviderAdmin>
fn as_management_capability(&self) -> Option<&dyn ProviderAdmin>
Source§fn get_custom_status<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
last_seen_version: u64,
) -> Pin<Box<dyn Future<Output = Result<Option<(Option<String>, u64)>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_custom_status<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
last_seen_version: u64,
) -> Pin<Box<dyn Future<Output = Result<Option<(Option<String>, u64)>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_kv_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn get_kv_value<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
key: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn get_kv_all_values<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_kv_all_values<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl ProviderAdmin for PostgresProvider
impl ProviderAdmin for PostgresProvider
Source§fn list_instances<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn list_instances<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn list_instances_by_status<'life0, 'life1, 'async_trait>(
&'life0 self,
status: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_instances_by_status<'life0, 'life1, 'async_trait>(
&'life0 self,
status: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn list_executions<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u64>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_executions<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<u64>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn read_history_with_execution_id<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
execution_id: u64,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_history_with_execution_id<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
execution_id: u64,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn read_history<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn read_history<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Event>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn latest_execution_id<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<u64, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn latest_execution_id<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<u64, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_instance_info<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<InstanceInfo, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_instance_info<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<InstanceInfo, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_execution_info<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
execution_id: u64,
) -> Pin<Box<dyn Future<Output = Result<ExecutionInfo, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_execution_info<'life0, 'life1, 'async_trait>(
&'life0 self,
instance: &'life1 str,
execution_id: u64,
) -> Pin<Box<dyn Future<Output = Result<ExecutionInfo, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_system_metrics<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SystemMetrics, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_system_metrics<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<SystemMetrics, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_queue_depths<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<QueueDepths, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_queue_depths<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<QueueDepths, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn list_children<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_children<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn get_parent_id<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_parent_id<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<String>, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn delete_instances_atomic<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
force: bool,
) -> Pin<Box<dyn Future<Output = Result<DeleteInstanceResult, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_instances_atomic<'life0, 'life1, 'async_trait>(
&'life0 self,
ids: &'life1 [String],
force: bool,
) -> Pin<Box<dyn Future<Output = Result<DeleteInstanceResult, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn delete_instance_bulk<'life0, 'async_trait>(
&'life0 self,
filter: InstanceFilter,
) -> Pin<Box<dyn Future<Output = Result<DeleteInstanceResult, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn delete_instance_bulk<'life0, 'async_trait>(
&'life0 self,
filter: InstanceFilter,
) -> Pin<Box<dyn Future<Output = Result<DeleteInstanceResult, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn prune_executions<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
options: PruneOptions,
) -> Pin<Box<dyn Future<Output = Result<PruneResult, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn prune_executions<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
options: PruneOptions,
) -> Pin<Box<dyn Future<Output = Result<PruneResult, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn prune_executions_bulk<'life0, 'async_trait>(
&'life0 self,
filter: InstanceFilter,
options: PruneOptions,
) -> Pin<Box<dyn Future<Output = Result<PruneResult, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn prune_executions_bulk<'life0, 'async_trait>(
&'life0 self,
filter: InstanceFilter,
options: PruneOptions,
) -> Pin<Box<dyn Future<Output = Result<PruneResult, ProviderError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn get_instance_tree<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<InstanceTree, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn get_instance_tree<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<InstanceTree, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Source§fn delete_instance<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
force: bool,
) -> Pin<Box<dyn Future<Output = Result<DeleteInstanceResult, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
fn delete_instance<'life0, 'life1, 'async_trait>(
&'life0 self,
instance_id: &'life1 str,
force: bool,
) -> Pin<Box<dyn Future<Output = Result<DeleteInstanceResult, ProviderError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: 'async_trait,
Auto Trait Implementations§
impl Freeze for PostgresProvider
impl !RefUnwindSafe for PostgresProvider
impl Send for PostgresProvider
impl Sync for PostgresProvider
impl Unpin for PostgresProvider
impl UnsafeUnpin for PostgresProvider
impl !UnwindSafe for PostgresProvider
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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