namespace GFramework.Game.Config;
///
/// 表示一个对象节点上声明的 object-focused if / then / else 条件约束。
/// 三个分支都共享父对象已声明字段集合,不会把分支 schema 扩展成新的生成类型形状。
///
internal sealed class YamlConfigConditionalSchemas
{
///
/// 初始化条件分支约束模型。
///
/// 条件判断 schema。
/// 条件命中时需要满足的 schema。
/// 条件未命中时需要满足的 schema。
/// 当 为 时抛出。
public YamlConfigConditionalSchemas(
YamlConfigSchemaNode ifSchema,
YamlConfigSchemaNode? thenSchema,
YamlConfigSchemaNode? elseSchema)
{
ArgumentNullException.ThrowIfNull(ifSchema);
IfSchema = ifSchema;
ThenSchema = thenSchema;
ElseSchema = elseSchema;
}
///
/// 获取条件判断 schema。
///
public YamlConfigSchemaNode IfSchema { get; }
///
/// 获取条件命中时需要满足的 schema。
///
public YamlConfigSchemaNode? ThenSchema { get; }
///
/// 获取条件未命中时需要满足的 schema。
///
public YamlConfigSchemaNode? ElseSchema { get; }
}