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