khive-db 0.10.0

SQLite storage backend: entities, edges, notes, events, FTS5, sqlite-vec vectors.
Documentation
use super::*;

impl SqliteWriter {
    pub(super) fn map_direct_error(
        &self,
        error: rusqlite::Error,
        operation: &'static str,
    ) -> StorageError {
        crate::timeout_sink::maybe_emit_busy(
            &self.db,
            crate::timeout_sink::Site::StandaloneSqlBridge,
            &error,
        );
        let error = map_rusqlite_err(error, operation);
        if self.observe_direct_errors {
            self.pool.record_direct_writer_error(&error);
        }
        error
    }

    pub(super) fn map_direct_batch_failure(&self, failure: BatchFailure) -> StorageError {
        crate::timeout_sink::maybe_emit_busy(
            &self.db,
            crate::timeout_sink::Site::StandaloneSqlBridge,
            &failure.error,
        );
        let error = match failure.poison_reason {
            Some(poison_reason) => StorageError::driver(
                StorageCapability::Sql,
                "execute_batch",
                PoisonedBatchError {
                    original: failure.error,
                    poison_reason,
                },
            ),
            None => map_rusqlite_err(failure.error, "execute_batch"),
        };
        if self.observe_direct_errors {
            self.pool.record_direct_writer_error(&error);
        }
        error
    }
}