1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//! Types for implementing custom FDv2 data sources.
//!
//! This module is experimental and not subject to semantic versioning. Its API
//! may change in any release.
//!
//! # Examples
//!
//! Implement a custom synchronizer and add it to a data system.
//! ```
//! use launchdarkly_server_sdk::data_sources::{
//! DataSourceBuildContext, FDv2SourceEvent, FDv2SourceEventFuture, FDv2SourceResult,
//! FDv2SynchronizerConfig, Selector, Synchronizer, SynchronizerFactory,
//! };
//! use launchdarkly_server_sdk::{ConfigBuilder, DataSystemBuildError, DataSystemBuilder};
//!
//! struct MySynchronizer;
//!
//! impl Synchronizer for MySynchronizer {
//! fn next(&mut self, _selector: Selector) -> FDv2SourceEventFuture<'_> {
//! Box::pin(async {
//! FDv2SourceEvent {
//! result: FDv2SourceResult::Goodbye,
//! fdv1_fallback: None,
//! }
//! })
//! }
//!
//! fn name(&self) -> &str {
//! "my-synchronizer"
//! }
//! }
//!
//! struct MyFactory;
//!
//! impl SynchronizerFactory for MyFactory {
//! fn create(&self) -> Box<dyn Synchronizer> {
//! Box::new(MySynchronizer)
//! }
//! }
//!
//! #[derive(Clone)]
//! struct MyConfig;
//!
//! impl FDv2SynchronizerConfig for MyConfig {
//! fn build_synchronizer(
//! &self,
//! _context: &DataSourceBuildContext,
//! ) -> Result<Box<dyn SynchronizerFactory>, DataSystemBuildError> {
//! Ok(Box::new(MyFactory))
//! }
//!
//! fn to_owned(&self) -> Box<dyn FDv2SynchronizerConfig> {
//! Box::new(self.clone())
//! }
//! }
//!
//! let mut data_system = DataSystemBuilder::custom();
//! data_system.synchronizer(MyConfig);
//! ConfigBuilder::new("sdk-key").data_system(&data_system);
//! ```
pub use crate;
pub use crate;
pub use crate;
pub use crateRequestHeaders;
pub use crate;
pub use crate;