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 production_fact;
16mod row;
17mod startup_pool;
18mod statement;
19mod termination_work;
20mod transaction;
21
22pub use database::{
23    Database, DatabaseConfig, DatabaseStartupInjection, DatabaseStartupInjectionError,
24    MAX_INBOUND_PACKET_BYTES, MAX_QUERY_ROWS,
25};
26pub use name_mapping::{DatabaseNameMappingError, StaticLogicalTable};
27pub use row::{DbRow, MAX_FIELD_BYTES, MAX_RESULT_BYTES, WriteResult};
28pub use saddle_core::{CallContext, Result, SaddleError};
29pub use statement::{
30    DbValue, MAX_PARAMETER_BYTES, MAX_PARAMETERS, MAX_PARAMETERS_TOTAL_BYTES, MAX_SQL_BYTES,
31    Statement,
32};
33pub use transaction::{Transaction, TransactionFuture};
34
35/// Generator-only contracts for the closed 0.2 execution graph.
36///
37/// These types and the production `query_optional` execution they seal are
38/// intentionally separate from the public 0.1 `Statement`, `DbValue`, `DbRow`,
39/// and transaction path.
40#[doc(hidden)]
41pub mod internal {
42    pub use crate::c1_deployment_observation::{
43        ApprovedDbReturnBounds, DbDeploymentObservationError, DbDeploymentObserverIdentity,
44        DbPoisonDiscardWorkProof, ObservedDeploymentDbAttestation, db_poison_discard_work_proof,
45        observe_deployment_db_service, parse_deployment_db_observation,
46    };
47    pub use crate::c1_normal_return::{DbNormalReturnWorkProof, db_normal_return_work_proof};
48    pub use crate::c1_service_attestation::{
49        DbDeploymentIdentity, DbReturnCalibration, DbReturnServiceDomain, DbReturnServiceProof,
50        DbReturnServiceRates, DbServiceProofError, DbServiceTarget, DeploymentDbServiceAttestation,
51        VerifiedDbServiceProof, derive_db_return_service, verify_db_service,
52    };
53    pub use crate::c1_write_transaction::{
54        ManagedWriteResult, StaticWriteOperation, TransactionDecision, TransactionExecution,
55        TransactionExecutionError, TransactionInvocation, TransactionOperationProof,
56        WriteCreditDemand, WriteExecution, WriteExecutionError, WriteInvocation, WriteLayout,
57        WriteOperationProof, WriteTransactionFinalizationProof,
58        write_transaction_finalization_proof,
59    };
60    pub use crate::c6_query_optional::{
61        DbBool, DbI64, DbPair, DbU64, FixedDbBytes, ManagedOptionalRow, ManagedQueryParameters,
62        ManagedQueryRow, QueryOptionalContractError, QueryOptionalCreditDemand,
63        QueryOptionalExecution, QueryOptionalExecutionError, QueryOptionalFinalizationProof,
64        QueryOptionalInvocation, QueryOptionalLayout, QueryOptionalOperationProof,
65        QueryOptionalParameterShape, QueryOptionalRowShape, StaticQueryOptionalOperation,
66        query_optional_finalization_proof,
67    };
68    pub use crate::production_fact::{
69        DatabaseProductionFactError, DatabaseProductionFactInput, DatabaseSourceCandidateInput,
70        DatabaseSourceCandidateRejection, VerifiedDatabaseSourceCandidateOwner,
71        bind_database_source_candidate, database_production_fact_input,
72        database_source_candidate_input, rollback_database_source_candidate,
73    };
74    pub use crate::startup_pool::{
75        StartupManagedDatabaseBootstrap, StartupManagedDatabaseError,
76        StartupManagedDatabaseFactory, StartupManagedDatabaseOwner,
77    };
78    pub use crate::termination_work::{
79        VerifiedDbTerminationWorkOwner, issue_verified_db_termination_work_owner,
80        validate_verified_db_termination_work_owner,
81    };
82}