Skip to main content

shelly_data/
lib.rs

1//! Shelly data-layer primitives.
2//!
3//! This crate is intentionally transport-agnostic and DB-driver-agnostic.
4//! It provides:
5//! - schema metadata
6//! - changeset casting/validation
7//! - repo traits + an in-memory adapter abstraction
8//! - query composition primitives
9//! - migration loading/state application helpers
10
11mod adapter;
12mod app_services;
13mod async_repo;
14mod changeset;
15mod error;
16mod integrations;
17mod migration;
18mod pipeline;
19mod query;
20mod repo;
21mod schema;
22
23pub use adapter::{AdapterKind, DatabaseConfig};
24pub use app_services::{
25    map_app_service_error, map_app_service_result, AppServiceError, AppServiceErrorKind,
26    AppServiceResult, AuthCredentials, AuthIdentity, AuthSession, BackgroundJobHandle,
27    BackgroundJobRequest, BackgroundJobService, BackgroundJobState, BackgroundJobStatus,
28    CacheBackend, CacheEntry, EmailMessage, EmailReceipt, IdentityService, InMemoryCacheBackend,
29    InMemoryIdentityService, InMemoryQueueBackend, InMemoryTransactionalEmailService,
30    JobOrchestratorBackgroundJobs, QueueBackend, QueueMessage, TenantBackgroundJobQuota,
31    TenantQuotaBackgroundJobs, TransactionalEmailService,
32};
33pub use async_repo::{
34    AsyncCancellationToken, AsyncMemoryRepo, AsyncQueryContext, AsyncRepo, AsyncRepoFuture,
35};
36pub use changeset::{Changeset, ValidationError};
37pub use error::{DataError, DataResult};
38pub use integrations::{
39    map_integration_error, map_integration_result, query_from_search,
40    run_adapter_conformance_suite, run_with_contract, run_with_contract_async, run_with_retry,
41    run_with_retry_async, AdapterCallContract, AdapterConformanceCheck, AdapterConformanceReport,
42    AnalyticsEvent, AnalyticsSink, AxiomTelemetryBridge, BigQueryAdapter, ClickHouseAdapter,
43    ConnectionLifecycle, ConnectionLifecycleHook, DataWindowRequest, DataWindowResponse,
44    InMemoryAxiomSink, InMemoryBigQueryAdapter, InMemoryClickHouseAdapter, InMemoryJobOrchestrator,
45    InMemoryOpenSearchAdapter, InMemorySingleStoreAdapter, IntegrationError, IntegrationErrorKind,
46    IntegrationResult, JobCompletionCallback, JobHandle, JobOrchestrator, JobRequest, JobState,
47    JobStatus, LifecycleHooks, OpenSearchAdapter, QueryContext, RetryPolicy, SearchRequest,
48    SearchResponse, SingleStoreAdapter, SqlCommand, TriggerDevAdapter, TypedQueryBoundary,
49    CONTEXT_TAG_CORRELATION_ID, CONTEXT_TAG_REQUEST_ID, CONTEXT_TAG_RETRY_INITIAL_BACKOFF_MS,
50    CONTEXT_TAG_RETRY_MAX_ATTEMPTS, CONTEXT_TAG_RETRY_MAX_BACKOFF_MS, CONTEXT_TAG_TIMEOUT_MS,
51};
52pub use migration::{
53    load_migrations, AppliedMigration, Migration, MigrationEngine, MigrationStatus,
54};
55pub use pipeline::{
56    pipeline_records_to_json_lines, run_pipeline_adapter_conformance_suite,
57    write_pipeline_records_to_file, BigQueryPipelineSink, BigQueryPipelineSource, CheckpointStore,
58    ClickHousePipelineSink, ClickHousePipelineSource, DeadLetterStore, FileJsonLineSink,
59    FileJsonLineSource, IdempotentInMemorySink, InMemoryCheckpointStore, InMemoryDeadLetterStore,
60    InMemoryObjectStore, InMemoryPipelineEventStore, InMemoryRecordSource, ObjectStoreJsonSink,
61    ObjectStoreJsonSource, OpenSearchPipelineSink, OpenSearchPipelineSource, PassthroughTransform,
62    Pipeline, PipelineBatch, PipelineConformanceCheck, PipelineConformanceReport, PipelineControl,
63    PipelineDeadLetter, PipelineDeadLetterInput, PipelineEvent, PipelineEventKind,
64    PipelineEventStore, PipelineOperationSnapshot, PipelineRun, PipelineRunCommand,
65    PipelineRunStatus, PipelineRuntime, PipelineStage, PipelineTrigger, SingleStorePipelineSink,
66    SingleStorePipelineSource, Sink, SinkWriteResult, Source, Transform, TransformBatch,
67};
68pub use query::{
69    Filter, FilterOperator, KeysetCursor, KeysetDirection, KeysetPagination, Pagination, Query,
70    QueryWindow, Sort, SortDirection, WindowToken, WireFormatProfile,
71};
72pub use repo::{
73    adapter_for, AdapterDriver, BigQueryDriver, ClickHouseDriver, CompactRowsPayload,
74    IncrementalDiff, MemoryRepo, MySqlAdapter, OpenSearchAdapterDriver, OptimisticLock,
75    OptimisticLockingRepo, PostgresAdapter, QueryObservabilityPolicy, QueryObservabilityTracker,
76    QueryObservation, Repo, RepoUnitOfWork, Row, SingleStoreDriver, SqliteAdapter, StoredRow,
77    TenantPolicyContext, TenantPolicyDecision, TenantPolicyHook, TenantRepoConfig,
78    TenantRepoOperation, TenantScopedRepo, WindowPage,
79};
80pub use schema::{Field, FieldType, Schema, SchemaDefinition};