mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 08:18:18 +00:00
dd7da015e3
* init rustfs config * improve code for rustfs-config crate * add * improve code for comment * fix: modify rustfs-config crate name * add default fn * improve error logger * fix: modify docker config yaml * improve code for config * feat: restrict kafka feature to Linux only - Add target-specific feature configuration in Cargo.toml for obs and event-notifier crates - Implement conditional compilation for kafka feature only on Linux systems - Add appropriate error handling for non-Linux platforms - Ensure backward compatibility with existing code * refactor(ci): optimize build workflow for better efficiency - Integrate GUI build steps into main build-rustfs job - Add conditional GUI build execution based on tag releases - Simplify workflow by removing redundant build-rustfs-gui job - Copy binary directly to embedded-rustfs directory without downloading artifacts - Update merge job dependency to only rely on build-rustfs - Improve cross-platform compatibility for Windows binary naming (.exe) - Streamline artifact uploading and OSS publishing process - Maintain consistent conditional logic for release operations * refactor(ci): optimize build workflow for better efficiency - Integrate GUI build steps into main build-rustfs job - Add conditional GUI build execution based on tag releases - Simplify workflow by removing redundant build-rustfs-gui job - Copy binary directly to embedded-rustfs directory without downloading artifacts - Update merge job dependency to only rely on build-rustfs - Improve cross-platform compatibility for Windows binary naming (.exe) - Streamline artifact uploading and OSS publishing process - Maintain consistent conditional logic for release operations * fix(ci): add repo-token to setup-protoc action for authentication - Add GITHUB_TOKEN parameter to arduino/setup-protoc@v3 action - Ensure proper authentication for Protoc installation in CI workflow - Maintain consistent setup across different CI environments * modify config * improve readme.md * remove env config relation * add allow(dead_code)
44 lines
1.2 KiB
Rust
44 lines
1.2 KiB
Rust
use crate::event::adapters::AdapterConfig;
|
|
use serde::{Deserialize, Serialize};
|
|
use std::env;
|
|
|
|
#[allow(dead_code)]
|
|
const DEFAULT_CONFIG_FILE: &str = "event";
|
|
|
|
/// Configuration for the notification system.
|
|
#[derive(Debug, Clone, Serialize, Deserialize)]
|
|
pub struct NotifierConfig {
|
|
#[serde(default = "default_store_path")]
|
|
pub store_path: String,
|
|
#[serde(default = "default_channel_capacity")]
|
|
pub channel_capacity: usize,
|
|
pub adapters: Vec<AdapterConfig>,
|
|
}
|
|
|
|
impl Default for NotifierConfig {
|
|
fn default() -> Self {
|
|
Self::new()
|
|
}
|
|
}
|
|
|
|
impl NotifierConfig {
|
|
/// create a new configuration with default values
|
|
pub fn new() -> Self {
|
|
Self {
|
|
store_path: default_store_path(),
|
|
channel_capacity: default_channel_capacity(),
|
|
adapters: vec![AdapterConfig::new()],
|
|
}
|
|
}
|
|
}
|
|
|
|
/// Provide temporary directories as default storage paths
|
|
fn default_store_path() -> String {
|
|
env::temp_dir().join("event-notification").to_string_lossy().to_string()
|
|
}
|
|
|
|
/// Provides the recommended default channel capacity for high concurrency systems
|
|
fn default_channel_capacity() -> usize {
|
|
10000 // Reasonable default values for high concurrency systems
|
|
}
|