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