/// <summary> /// Gets all immediate subschemas for a keyword. /// </summary> /// <param name="keyword">The keyword.</param> /// <returns>An `IEnumerable<JsonSchema>`.</returns> public static IEnumerable <JsonSchema> GetSubschemas(this IJsonSchemaKeyword keyword) { return(keyword switch { ISchemaContainer container => new[] { container.Schema }, ISchemaCollector collector => collector.Schemas, IKeyedSchemaCollector collector => collector.Schemas.Values, _ => Enumerable.Empty <JsonSchema>() });
/// <summary> /// Gets all immediate subschemas for a keyword. /// </summary> /// <param name="keyword">The keyword.</param> /// <returns>An `IEnumerable<JsonSchema>`.</returns> public static IEnumerable <JsonSchema> GetSubschemas(this IJsonSchemaKeyword keyword) { return(keyword switch { // ReSharper disable once ConditionIsAlwaysTrueOrFalse ISchemaContainer container => container.Schema == null?Enumerable.Empty <JsonSchema>() : new[] { container.Schema }, // ReSharper disable ConstantNullCoalescingCondition ISchemaCollector collector => collector.Schemas ?? Enumerable.Empty <JsonSchema>(), IKeyedSchemaCollector collector => collector.Schemas.Values ?? Enumerable.Empty <JsonSchema>(), // ReSharper restore ConstantNullCoalescingCondition _ => Enumerable.Empty <JsonSchema>() });