summa-server 0.22.6

Fast full-text search server
Documentation
use std::fmt::Debug;

use async_trait::async_trait;
use summa_core::components::IndexWriterHolder;
use summa_proto::proto;
use tantivy::schema::Schema;
use tokio::sync::OwnedRwLockReadGuard;

use crate::SummaServerResult;

#[async_trait]
pub trait ConsumerThread: Send + Sync + Debug {
    fn consumer_name(&self) -> &str;
    async fn start(
        &self,
        index_writer_holder: OwnedRwLockReadGuard<IndexWriterHolder>,
        conflict_strategy: proto::ConflictStrategy,
        schema: Schema,
    ) -> SummaServerResult<()>;
    async fn stop(&self) -> SummaServerResult<()>;
    async fn commit(&self) -> SummaServerResult<()>;
    async fn on_create(&self) -> SummaServerResult<()>;
    async fn on_delete(&self) -> SummaServerResult<()>;
    fn config(&self) -> &crate::configs::consumer::Config;
}