StructValueConverter<T>
using AngleSharp.Dom.Css;
using System;
namespace AngleSharp.Css.ValueConverters
{
internal sealed class StructValueConverter<T> : IValueConverter<T>, IValueConverter where T : struct
{
private readonly Func<ICssValue, T?> _converter;
public int MinArgs => 1;
public int MaxArgs => 1;
public StructValueConverter(Func<ICssValue, T?> converter)
{
_converter = converter;
}
public bool TryConvert(ICssValue value, Action<T> setResult)
{
T? nullable = _converter(value);
if (!nullable.HasValue)
return false;
setResult(nullable.Value);
return true;
}
public bool Validate(ICssValue value)
{
return _converter(value).HasValue;
}
}
}