nimbus/stateful/
firefox_labs.rs1use crate::enrollment::EnrollmentChangeEvent;
6
7pub const FIREFOX_LABS_FEEDBACK_URL_KEY: &str = "feedback";
8
9#[cfg_attr(test, derive(Debug, PartialEq, Eq))]
10pub struct FirefoxLabsMetadata {
11 pub slug: String,
12 pub enrolled: bool,
13 pub title_string_id: String,
14 pub description_string_id: String,
15 pub feedback_url: Option<String>,
16 pub requires_restart: bool,
17}
18
19#[cfg_attr(test, derive(Debug, PartialEq, Eq))]
20pub struct FirefoxLabsEnrollResult {
21 pub status: FirefoxLabsEnrollStatus,
22 pub enrollment_change_events: Vec<EnrollmentChangeEvent>,
23}
24
25#[derive(Eq, PartialEq)]
26#[cfg_attr(test, derive(Debug))]
27pub enum FirefoxLabsEnrollStatus {
28 Enrolled,
29 AlreadyEnrolled,
30 NoExperiment,
31 NotFirefoxLabsOptIn,
32 FeatureConflict,
33 Error,
34}
35
36#[cfg_attr(test, derive(Debug, PartialEq, Eq))]
37pub struct FirefoxLabsUnenrollResult {
38 pub status: FirefoxLabsUnenrollStatus,
39 pub enrollment_change_events: Vec<EnrollmentChangeEvent>,
40}
41
42#[derive(Eq, PartialEq)]
43#[cfg_attr(test, derive(Debug))]
44pub enum FirefoxLabsUnenrollStatus {
45 Unenrolled,
46 AlreadyUnenrolled,
47 NoExperiment,
48 NotFirefoxLabsOptIn,
49 Error,
50}