optify/schema/
feature.rs

1// Similar to https://github.com/juharris/dotnet-OptionsProvider/blob/main/src/OptionsProvider/OptionsProvider/FeatureConfiguration.cs
2
3use serde::Deserialize;
4
5use super::conditions::ConditionExpression;
6use super::metadata::OptionsMetadata;
7
8pub(crate) type ConfigurationOptions = serde_json::Value;
9
10#[derive(Clone, Debug, Deserialize)]
11#[allow(unused)]
12pub(crate) struct FeatureConfiguration {
13    pub imports: Option<Vec<String>>,
14    pub metadata: Option<OptionsMetadata>,
15    /// Conditions to automatically enable this feature file when constraints are given when getting configuration options.
16    ///
17    /// More details in the JSON schema.
18    pub conditions: Option<ConditionExpression>,
19    pub options: Option<ConfigurationOptions>,
20}