Skip to main content

fathomdb_engine/
lib.rs

1#[macro_use]
2mod trace_support;
3
4mod admin;
5mod coordinator;
6mod database_lock;
7mod embedder;
8mod executable_trust;
9mod ids;
10mod operational;
11mod projection;
12mod runtime;
13mod sqlite;
14mod telemetry;
15mod writer;
16
17pub use admin::{
18    AdminHandle, AdminService, FtsPropertyPathMode, FtsPropertyPathSpec, FtsPropertySchemaRecord,
19    IntegrityReport, LogicalPurgeReport, LogicalRestoreReport, ProvenancePurgeOptions,
20    ProvenancePurgeReport, SafeExportManifest, SafeExportOptions, SemanticReport, SkippedEdge,
21    TraceReport, VectorGeneratorPolicy, VectorRegenerationConfig, VectorRegenerationReport,
22    load_vector_regeneration_config,
23};
24pub use coordinator::{
25    ActionRow, ExecutionCoordinator, ExpansionRootRows, ExpansionSlotRows, GroupedQueryRows,
26    NodeRow, ProvenanceEvent, QueryPlan, QueryRows, RunRow, StepRow,
27};
28#[cfg(feature = "default-embedder")]
29pub use embedder::BuiltinBgeSmallEmbedder;
30pub use embedder::{EmbedderError, QueryEmbedder, QueryEmbedderIdentity};
31pub use ids::{new_id, new_row_id};
32pub use operational::{
33    OperationalCollectionKind, OperationalCollectionRecord, OperationalCompactionReport,
34    OperationalCurrentRow, OperationalFilterClause, OperationalFilterField,
35    OperationalFilterFieldType, OperationalFilterMode, OperationalFilterValue,
36    OperationalHistoryValidationIssue, OperationalHistoryValidationReport, OperationalMutationRow,
37    OperationalPurgeReport, OperationalReadReport, OperationalReadRequest,
38    OperationalRegisterRequest, OperationalRepairReport, OperationalRetentionActionKind,
39    OperationalRetentionPlanItem, OperationalRetentionPlanReport, OperationalRetentionRunItem,
40    OperationalRetentionRunReport, OperationalSecondaryIndexDefinition,
41    OperationalSecondaryIndexField, OperationalSecondaryIndexRebuildReport,
42    OperationalSecondaryIndexValueType, OperationalTraceReport, OperationalValidationContract,
43    OperationalValidationField, OperationalValidationFieldType, OperationalValidationMode,
44};
45pub use projection::{ProjectionRepairReport, ProjectionService, ProjectionTarget};
46pub use runtime::EngineRuntime;
47pub use sqlite::{SharedSqlitePolicy, shared_sqlite_policy};
48pub use telemetry::{
49    SqliteCacheStatus, TelemetryCounters, TelemetryLevel, TelemetrySnapshot, read_db_cache_status,
50};
51pub use writer::{
52    ActionInsert, ChunkInsert, ChunkPolicy, EdgeInsert, EdgeRetire, LastAccessTouchReport,
53    LastAccessTouchRequest, NodeInsert, NodeRetire, OperationalWrite, OptionalProjectionTask,
54    ProvenanceMode, RunInsert, StepInsert, VecInsert, WriteReceipt, WriteRequest, WriterActor,
55};
56
57use thiserror::Error;
58
59/// Top-level error type for all engine operations.
60#[derive(Debug, Error)]
61pub enum EngineError {
62    #[error("sqlite error: {0}")]
63    Sqlite(#[from] rusqlite::Error),
64    #[error("schema error: {0}")]
65    Schema(#[from] fathomdb_schema::SchemaError),
66    #[error("io error: {0}")]
67    Io(#[from] std::io::Error),
68    #[error("writer actor rejected request: {0}")]
69    WriterRejected(String),
70    #[error("write timed out (may still commit): {0}")]
71    WriterTimedOut(String),
72    #[error("invalid write request: {0}")]
73    InvalidWrite(String),
74    #[error("bridge error: {0}")]
75    Bridge(String),
76    #[error("capability missing: {0}")]
77    CapabilityMissing(String),
78    #[error("database locked: {0}")]
79    DatabaseLocked(String),
80    #[error("invalid configuration: {0}")]
81    InvalidConfig(String),
82}