AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="0.9.10" />

.NET API 1,230,336 bytes

 OptionValueConverter<T>

using AngleSharp.Dom.Css; using AngleSharp.Parser.Css; using System.Collections.Generic; using System.Linq; namespace AngleSharp.Css.ValueConverters { internal sealed class OptionValueConverter<T> : IValueConverter { private sealed class OptionValue : IPropertyValue { private readonly T _value; private readonly CssValue _original; public string CssText => string.Empty; public CssValue Original => _original; public OptionValue(T value, IEnumerable<CssToken> tokens) { _value = value; _original = new CssValue(tokens); } public CssValue ExtractFor(string name) { return null; } } private readonly IValueConverter _converter; private readonly T _defaultValue; public OptionValueConverter(IValueConverter converter, T defaultValue) { _converter = converter; _defaultValue = defaultValue; } public IPropertyValue Convert(IEnumerable<CssToken> value) { if (!Enumerable.Any<CssToken>(value)) return new OptionValue(_defaultValue, value); return _converter.Convert(value); } public IPropertyValue Construct(CssProperty[] properties) { return _converter.Construct(properties) ?? new OptionValue(_defaultValue, Enumerable.Empty<CssToken>()); } } }