open_feature_flagd/resolver/in_process/storage/connector/
mod.rs1pub mod file;
2pub mod grpc;
3
4use std::collections::HashMap;
5use std::sync::Arc;
6use tokio::sync::mpsc::Receiver;
7use tokio::sync::Mutex;
8
9#[derive(Debug)]
10pub struct QueuePayload {
11 pub payload_type: QueuePayloadType,
12 pub flag_data: String,
13 pub metadata: Option<HashMap<String, serde_json::Value>>,
14}
15
16#[derive(Debug, PartialEq)]
17pub enum QueuePayloadType {
18 Data,
19 Error,
20}
21
22#[async_trait::async_trait]
23pub trait Connector: Send + Sync {
24 async fn init(&self) -> anyhow::Result<()>;
25 async fn shutdown(&self) -> anyhow::Result<()>;
26 fn get_stream(&self) -> Arc<Mutex<Option<Receiver<QueuePayload>>>>;
27}