Skip to main content

launchdarkly_server_sdk/stores/
change_set.rs

1use launchdarkly_server_sdk_evaluation::{Flag, Segment};
2
3use crate::fdv2::model::{ChangeSetKind, Selector};
4
5use super::store_types::StorageItem;
6
7/// A single flag or segment change within a change set.
8#[derive(Clone, Debug)]
9pub enum ItemChange {
10    /// A flag was upserted or deleted.
11    Flag {
12        /// The flag key.
13        key: String,
14        /// The new flag value or a tombstone.
15        item: StorageItem<Flag>,
16    },
17    /// A segment was upserted or deleted.
18    Segment {
19        /// The segment key.
20        key: String,
21        /// The new segment value or a tombstone.
22        item: StorageItem<Segment>,
23    },
24}
25
26/// A batch of flag and segment changes delivered by a data source.
27#[derive(Debug)]
28pub struct ChangeSet {
29    /// Whether this is a full payload, an incremental update, or empty.
30    pub kind: ChangeSetKind,
31    /// The individual item changes.
32    pub changes: Vec<ItemChange>,
33    /// The selector to echo back on the next request.
34    pub selector: Selector,
35}