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}