Skip to main content

saddle_db/
lib.rs

1//! Saddle-managed MySQL/MariaDB access and single-source transactions.
2//!
3//! Applications receive this capability from Saddle. They do not create a
4//! pool, acquire a connection, or manage a sqlx transaction directly.
5
6mod c1_deployment_observation;
7mod c1_normal_return;
8mod c1_service_attestation;
9mod c1_write_transaction;
10mod c6_query_optional;
11mod cleanup;
12mod database;
13mod error;
14mod name_mapping;
15mod observation;
16mod physical_terminal;
17mod production_fact;
18mod row;
19mod startup_pool;
20mod statement;
21mod termination_work;
22mod transaction;
23
24pub use database::{
25    Database, DatabaseConfig, DatabaseStartupInjection, DatabaseStartupInjectionError,
26    MAX_INBOUND_PACKET_BYTES, MAX_QUERY_ROWS,
27};
28pub use name_mapping::{DatabaseNameMappingError, StaticLogicalTable};
29#[doc(hidden)]
30pub use physical_terminal::DatabasePhysicalTerminal;
31pub use row::{DbRow, MAX_FIELD_BYTES, MAX_RESULT_BYTES, WriteResult};
32pub use saddle_core::{CallContext, Result, SaddleError};
33pub use statement::{
34    DbValue, MAX_PARAMETER_BYTES, MAX_PARAMETERS, MAX_PARAMETERS_TOTAL_BYTES, MAX_SQL_BYTES,
35    Statement,
36};
37pub use transaction::{Transaction, TransactionFuture};
38
39/// Generator-only contracts for the closed 0.2 execution graph.
40///
41/// These types and the production `query_optional` execution they seal are
42/// intentionally separate from the public 0.1 `Statement`, `DbValue`, `DbRow`,
43/// and transaction path.
44#[doc(hidden)]
45pub mod internal {
46    pub use crate::c1_deployment_observation::{
47        ApprovedDbReturnBounds, DbDeploymentObservationError, DbDeploymentObserverIdentity,
48        DbPoisonDiscardWorkProof, ObservedDeploymentDbAttestation, db_poison_discard_work_proof,
49        observe_deployment_db_service, parse_deployment_db_observation,
50    };
51    pub use crate::c1_normal_return::{DbNormalReturnWorkProof, db_normal_return_work_proof};
52    pub use crate::c1_service_attestation::{
53        DbDeploymentIdentity, DbReturnCalibration, DbReturnServiceDomain, DbReturnServiceProof,
54        DbReturnServiceRates, DbServiceProofError, DbServiceTarget, DeploymentDbServiceAttestation,
55        VerifiedDbServiceProof, derive_db_return_service, verify_db_service,
56    };
57    pub use crate::c1_write_transaction::{
58        ManagedWriteResult, StaticWriteOperation, TransactionDecision, TransactionExecution,
59        TransactionExecutionError, TransactionInvocation, TransactionOperationProof,
60        WriteCreditDemand, WriteExecution, WriteExecutionError, WriteInvocation, WriteLayout,
61        WriteOperationProof, WriteTransactionFinalizationProof,
62        write_transaction_finalization_proof,
63    };
64    pub use crate::c6_query_optional::{
65        DbBool, DbI64, DbPair, DbU64, FixedDbBytes, ManagedOptionalRow, ManagedQueryParameters,
66        ManagedQueryRow, QueryOptionalContractError, QueryOptionalCreditDemand,
67        QueryOptionalExecution, QueryOptionalExecutionError, QueryOptionalFinalizationProof,
68        QueryOptionalInvocation, QueryOptionalLayout, QueryOptionalOperationProof,
69        QueryOptionalParameterShape, QueryOptionalRowShape, StaticQueryOptionalOperation,
70        query_optional_finalization_proof,
71    };
72    pub use crate::production_fact::{
73        DatabaseProductionFactError, DatabaseProductionFactInput, DatabaseSourceCandidateInput,
74        DatabaseSourceCandidateRejection, VerifiedDatabaseSourceCandidateOwner,
75        bind_database_source_candidate, database_production_fact_input,
76        database_source_candidate_input, rollback_database_source_candidate,
77    };
78    pub use crate::startup_pool::{
79        StartupManagedDatabaseBootstrap, StartupManagedDatabaseError,
80        StartupManagedDatabaseFactory, StartupManagedDatabaseOwner,
81        StartupManagedDatabaseProcessCapability, StartupManagedDatabaseProcessError,
82    };
83    pub use crate::termination_work::{
84        VerifiedDbTerminationWorkOwner, issue_verified_db_termination_work_owner,
85        validate_verified_db_termination_work_owner,
86    };
87}