AngleSharp by AngleSharp

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

.NET API 1,214,976 bytes

 StructValueConverter<T>

sealed class StructValueConverter<T> : IValueConverter where T : struct, IFormattable
using AngleSharp.Dom.Css; using AngleSharp.Parser.Css; using System; using System.Collections.Generic; using System.Globalization; namespace AngleSharp.Css.ValueConverters { internal sealed class StructValueConverter<T> : IValueConverter where T : struct, IFormattable { private sealed class StructValue : IPropertyValue { private readonly T _value; private readonly CssValue _original; public string CssText => _value.ToString(null, CultureInfo.InvariantCulture); public CssValue Original => _original; public StructValue(T value, IEnumerable<CssToken> tokens) { _value = value; _original = new CssValue(tokens); } public CssValue ExtractFor(string name) { return _original; } } private readonly Func<IEnumerable<CssToken>, T?> _converter; public StructValueConverter(Func<IEnumerable<CssToken>, T?> converter) { _converter = converter; } public IPropertyValue Convert(IEnumerable<CssToken> value) { T? nullable = _converter(value); if (!nullable.HasValue) return null; return new StructValue(nullable.Value, value); } public IPropertyValue Construct(CssProperty[] properties) { return PropertyExtensions.Guard<StructValue>(properties); } } }