summa-server 0.22.6

Fast full-text search server
Documentation
use serde::{Deserialize, Serialize};

use crate::errors::SummaServerResult;

#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct Config {
    pub index_name: String,
    pub bootstrap_servers: Vec<String>,
    pub create_topics: bool,
    pub delete_topics: bool,
    pub group_id: String,
    pub max_poll_interval_ms: u32,
    pub session_timeout_ms: u32,
    pub topics: Vec<String>,
}

impl Config {
    pub fn new(index_name: &str, bootstrap_servers: &[String], group_id: &str, topics: &[String]) -> SummaServerResult<Config> {
        Ok(Config {
            index_name: index_name.to_string(),
            bootstrap_servers: bootstrap_servers.to_owned(),
            create_topics: true,
            delete_topics: true,
            group_id: group_id.to_owned(),
            max_poll_interval_ms: 1800000,
            session_timeout_ms: 300000,
            topics: topics.to_owned(),
        })
    }
}